@RenderBody
- 介绍
当创建基于_Layout.cshtml布局页面的视图时,视图的内容会和布局页面合并,而新创建视图的内容会通过_Layout.cshtml布局页面的@RenderBody()方法呈现在标签之间。
即当View引用_Layout.cshtml时,Views的内容会显示在_Layout.cshtml @RenderBody() 方法的位置上,从而保证了_Layout.cshtml的通用性。
@RenderPage
- 介绍
使用 @RenderPage() 方法可以将一个另一个指定页面,嵌入到方法所在的位置。比如通用的页眉、页脚等,可以在单独的页面设计,使用@RenderPage() 调用。
*@RenderPage()只能在_Layout.cshtml页面使用。
*被调用的页面应放置在Views/Shared 共享视图文件夹下。(待调查)
- 方法调用
@RenderPage("~/Views/Shared/test.cshtml")
向test页面传递参数用法如下
@RenderPage("~/Views/Shared/test.cshtml", new { Title = "标题", Author = "作者"})
获取参数时使用
@PageData["Title"] //或者 @Page.Title
@RenderSection
- 介绍
如果某个视图模板中定义了一个节,那么可以把它单独呈现出来
- 方法调用
@RenderSection("head", false)//第二个参数表示,这个结点是否是必须的,如果是必须的,那么引用这个layout的页面必须定义相应结点,否则编译会报错。
或者
@if (IsSectionDefined("head"))//先判断是否定义了结点 { @RenderSection("head", false) } else { <p>SubMenu Section is not defined!</p> }
定义结点方法如下
@section Head{ //结点内容 }