asp.Net   发布时间:2022-04-07  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Asp.net mvc 知多少(四)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

本节主要讲解布局页(Layout)的使用

Q40. 什么是 ASP.NET MVC的布局页(Layouts)? Ans. Layouts(布局页)是用来使asp.net mvc中的views保持一致的外观体验。与webforms的master pages功能相似,但比其更加简单且可扩展性更强。下面是一个布局页的代码展示:




 
 
 @ViewBag.<a href="http://code.js-code.com/tag/titl/" target="_blank" class="keywords">titl</a>e
 @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{