布局页

布局页和创建带布局页的视图是配合使用的

Razor的布局有助于使应用程序中的多个视图保持一致的风格,与Web Forms中的母版页效果是一样的。也可以将布局页理解为公共的模板。公共模板包括一个或多个占位符,视图为这些占位符提供内容。

1.1.    创建布局页

对于使用Visual Studio 2013 IDE开发工具创建的ASP.NET MVC模版,会自动创建一些布局页。如下图所示:

在Views文件夹中的“Shared”文件夹中存放的cshtml文件就是视图文件。“Shared”文件夹不是必须的。

现在创建一个自己的布局页:

在图中选择“MVC 5布局页(Razor)“,如下图所示:

 

这就是ASP.NET MVC Razor布局页,其中有一个重要的占位符就是@RenderBody()方法,相当于ASP.NET MasterPage中的ContentPlaceHolder标记。用来标记使用这个布局的视图将渲染它们的主要内容的位置。那么如果多个视图都使用同一个布局页,则就可以使用这个布局显示一致的外观。

1.2.    创建带布局页的视图

ASP.NET MVC带布局页的视图就是ASP.NET WebForm中带母版页的Web窗体,也就是内容页。

在图中选择“带有布局的MVC 5视图页(Razor)“:

在图中选择我们刚才创建的布局页,点击“确定“按钮。

现在已经创建一个具有布局的视图。此视图默认什么内容也没有,现在输入一些内容:

现在在BaWei控制器中创建一个Show()操作方法,并返回刚才创建的视图。

运行一下:

现在修改一下布局页_LayoutPage1.cshtml:

在布局页中简单的添加了一些样式,再刷新一下刚才的页面:

可见,在布局页中所做的修改,在任何其它的页面中都会生效。

ViewStart视图

如果很多页面使用了同一个布局页,可以将这个布局放在一个名称为_ViewStart.cshtml页面中。此页面会先于任何视图执行,可以自动的应用到任何视图中。所以在视图中就不必要使用如下代码来指定布局页了:

@{

    Layout = "~/Views/Shared/_Layout.cshtml";

}

默认_ViewStart.cshtml引用的是:~/Views/Shared/_Layout.cshtml视图。在前面我们创建的视图都是基于该布局视图呈现的。

可见,使用_ViewStart.cshtml确实方便很多,对于统一的外观,可以使用_ViewStart.cshtml进行统一配置,如果某个视图需要单独的布局,可以在视图中使用Layout属性重写即可。

猜你喜欢

转载自www.cnblogs.com/HuangLiming/p/10192687.html