Asp.net mvc 如何在MVC中处理设计模板?

Asp.net mvc 如何在MVC中处理设计模板?,asp.net-mvc,Asp.net Mvc,我们正在使用ASP.NET MVC 4/5开发一些web应用程序。这家公司是MVC的新手,但已经创建了一些WebForms应用程序。我的问题是,与WebForms开发中使用的模板最接近的等价物是什么?我甚至不知道有什么接近的。代替模板概念,您如何控制/确保团队中的每个人都保持相同的布局?CSS可以用于颜色和排版,但布局和非CSS呢?我们使用的是Scott Gu的一个优秀系列:Razor使用布局。它们只是views.cshtml/.vbhtml文件,其中至少包含一段代码@RenderBody,这是

我们正在使用ASP.NET MVC 4/5开发一些web应用程序。这家公司是MVC的新手,但已经创建了一些WebForms应用程序。我的问题是,与WebForms开发中使用的模板最接近的等价物是什么?我甚至不知道有什么接近的。代替模板概念,您如何控制/确保团队中的每个人都保持相同的布局?CSS可以用于颜色和排版,但布局和非CSS呢?

我们使用的是Scott Gu的一个优秀系列:

Razor使用布局。它们只是views.cshtml/.vbhtml文件,其中至少包含一段代码@RenderBody,这是使用布局的视图的渲染内容的放置位置。其他所有内容都是可选的,尽管使用@RenderSectionSectionName、true/false实现节是常见的,其中true值表示必须在调用此布局的视图中定义Section,false值表示它是可选的。然后,您的视图使用以下方法实现该部分:

@section SectionName
{
    <!-- something here -->
}
或者将带有该代码的_ViewStart.cshtml放在您希望应用该代码的视图目录中。该目录中的视图以及其中的所有子目录都将使用该布局,除非它们有自己的显式布局,或者它们所在的子目录有自己的_ViewStart.cshtml文件

布局也可以从其他布局继承,但它们必须重新定义原始布局中的任何截面,以便将其显示在视图中。例如:

视图\共享\\u Layout.cshtml

视图\共享\\u愚人节.cshtml


MVC5允许您混合使用webforms和mvc。虽然我个人并不想这样做,但如果您有遗留模板,那么在前端ui仍然是webforms的情况下,端点是mvc调用是有意义的。如果你想尝试一下,Rachel Appel有一些关于这个方法的好信息@TravisJ:MVC的所有版本都可以混合WebForms和Razor视图。不是MVC5独有的。
@{
    Layout = "~/Views/Shared/_MyAwesomeLayout.cshtml";
}
<html>
    <body>
        @RenderBody()
        @RenderSection("Scripts", false)
    </body>
</html>
@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<p>Foo</p>

@RenderBody()

@section Scripts
{
    @RenderSection("Scripts", false)
}