Asp.net mvc 3 MVC视图中有多少服务器端代码

Asp.net mvc 3 MVC视图中有多少服务器端代码,asp.net-mvc-3,asp.net-mvc-views,Asp.net Mvc 3,Asp.net Mvc Views,我一直在使用Razor开发MVC3应用程序。我想知道在我看来有多少代码是可以接受的。在某些情况下,我需要创建、实例化和使用模型中未包含的对象,而使用ViewModel会使模型对象膨胀。现在,当我查看一些视图时,我发现它们充满了服务器端代码。在处理此类问题时,最佳做法是什么 我想知道在我看来有多少代码是可以接受的 如果你所说的代码是指C#代码,那么准确地说应该是0。另一方面,在视图中编写HTML标记并调用HTML帮助程序是非常好的 在某些情况下,我需要创建、实例化和使用 未包含在模型中且使用Vie

我一直在使用Razor开发MVC3应用程序。我想知道在我看来有多少代码是可以接受的。在某些情况下,我需要创建、实例化和使用模型中未包含的对象,而使用ViewModel会使模型对象膨胀。现在,当我查看一些视图时,我发现它们充满了服务器端代码。在处理此类问题时,最佳做法是什么

我想知道在我看来有多少代码是可以接受的

如果你所说的代码是指C#代码,那么准确地说应该是0。另一方面,在视图中编写HTML标记并调用HTML帮助程序是非常好的

在某些情况下,我需要创建、实例化和使用 未包含在模型中且使用ViewModel的对象将 使模型对象膨胀

然后,您的视图模型似乎不适合此视图(因为此视图需要其他信息)。因此,通过使视图模型适应它并包含它所需的一切来改变这种情况

现在,当我查看我的一些视图时,我发现它们都是服务器端的 代码。在处理此类问题时,最佳做法是什么


是的,那太可怕了。只需调整视图模型并将此代码重构到视图模型或控制器中,甚至编写自定义HTML帮助程序。

在视图中编写服务器端代码是什么意思?在某些情况下,您无法避免在视图中使用C代码。例如,我在_layout.cshtml文件中创建了一个菜单。如果用户是Manager组的成员,我会在菜单中向他们显示更多选项(这是一个无序列表)。如果我不使用If-else,我还能做什么?@user1137993,If/else在视图中不是灾难。但是,您也可以编写一个自定义HTML帮助程序来呈现此菜单,以便在视图中只需编写
@HTML.menu()
。看,视图中没有C。