你如何处理MVC中的设计模板?

时间:2014-08-05 20:32:44

标签: asp.net-mvc

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

2 个答案:

答案 0 :(得分:0)

我们使用Razor Layouts,Scott Gu有一个很棒的系列here

答案 1 :(得分:0)

Razor使用“布局”。它们只是视图(.cshtml / .vbhtml文件),其中至少有一段代码@RenderBody(),这是使用布局放置视图的渲染内容的位置。其他所有内容都是可选的,尽管使用@RenderSection("SectionName", true/false)实现“部分”是很常见的,其中true值表示需要部分(必须在调用此布局的视图中定义)和{{{ 1}}值表示它是可选的。然后,您的视图将使用以下方式实现该部分:

false

默认情况下,视图将使用@section SectionName { <!-- something here --> } 中定义的布局,但您可以通过在视图中明确指定布局来使用其他内容:

Views\Shared\_Layout.cshtml

或者将@{ Layout = "~/Views/Shared/_MyAwesomeLayout.cshtml"; } 与该代码放在您希望它应用于的视图目录中。然后,该目录及其中所有子目录中的视图将使用该布局,除非它们具有自己的显式布局或它们所在的子目录具有自己的_ViewStart.cshtml文件。

布局也可以从其他布局继承,但是它们必须重新定义原始布局中的任何部分,以便将它们暴露给视图。例如:

<强>视图\共享\ _Layout.cshtml

_ViewStart.cshtml

<强>视图\共享\ _FooLayout.cshtml

<html>
    <body>
        @RenderBody()
        @RenderSection("Scripts", false)
    </body>
</html>