加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

Asp.net mvc 知多少(四)

发布时间:2020-12-15 21:22:21 所属栏目:asp.Net 来源:网络整理
导读:本系列主要翻译自《ASP.NET MVC Interview Questions and Answers 》- By Shailendra Chauhan,想看英文原版的可访问自行下载。该书主要分为两部分,ASP.NET MVC 5、ASP.NET WEB API2。本书最大的特点是以面试问答的形式进行展开。通读此书,会帮助你对ASP.N

本系列主要翻译自《ASP.NET MVC Interview Questions and Answers 》- By Shailendra Chauhan,想看英文原版的可访问自行下载。该书主要分为两部分,ASP.NET MVC 5、ASP.NET WEB API2。本书最大的特点是以面试问答的形式进行展开。通读此书,会帮助你对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{