以前学过WEB的应该都知道母版页这个东西,在这里呢,mvc的模板页和WEB中的模板页也是一样的效果和用途。
首先:创建一个项目,控制器,生成Index视图,在生成视图的时候我们选择Razor视图引擎,然后勾选“使用布局或母版页”选项,它默认引用的_Layout.cshtml页面的布局。_ViewStart.cshtml文件里已经对页面进行了配置,所有的Razor引擎页面在执行之前,都会来执行这个ViewStart页面。
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
Layout关键字就是用来指向默认页面布局的代码。这个视图呢就比ASPX视图干净的多。
自定义布局页:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>@ViewBag.Title</title>
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
</head>
<body>
<p>this is up</p>
@RenderBody()
<p> this is down</p>
@Scripts.Render("~/bundles/jquery")
@RenderSection("scripts", required: false)
</body>
</html>
在子视图页面中编写的内容,都是出现在布局页@RenderBody定义的位置。
@RenderSection布局页面还有节(Section)的概念
当然我们的显示还是要在视图中编写的
---Index:
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Index</h2>
<p>this is LayOutView</p>