大佬教程收集整理的这篇文章主要介绍了Asp.net mvc 知多少(四),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
本节主要讲解布局页(Layout)的使用
Q40. 什么是 ASP.NET MVC的布局页(Layouts)? Ans. Layouts(布局页)是用来使asp.net mvc中的views保持一致的外观体验。与webforms的master pages功能相似,但比其更加简单且可扩展性更强。下面是一个布局页的代码展示:
@ViewBag.title
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
@RenderBody()
@Scripts.Render("~/bundles/jquery")
@RenderSection("scripts",required: falsE)
可以使用layout为你的网站定义一个通用的模板。layout可以直接在view的顶部直接声明:
@{
Layout = "~/Views/Shared/SiteLayout.cshtml";
}
Q41. 介绍下ASP.NET MVC中Sections(节)? Ans. 通过section可以在layout中指定占用一块内容区域。可以在view中按以下方式定义section。
@section header{
Header Content
}
在layout中通过@RenderSection("header")去渲染上面定义的section。
默认来说,如果在layout中定义了需要渲染的section,那么在view中就必须实现。但可以通过以下方式,限定section是可选的。@RenderSection("header",falsE)
备注:View只能定义已经在layout中指定渲染的section,否则会抛出异常。
Q42. RenderBody 和 RenderPage 的作用是? Ans. RenderBody 方法是在layout页面中调用的,是用来渲染呈现子页面/视图。它类似于webform引擎中master页中的ContentPlaceHolder。一个layout页面中只能有一个 RenderBody 方法。
@RenderBody()
@RenderPage("~/Views/Shared/_Header.cshtml")
@RenderPage("~/Views/Shared/_Footer.cshtml")
@RenderSection("scripts",falsE)
@section scripts{