@RenderBody @RenderPage @RenderSection

 

 @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{  
    //结点内容
}  

 

posted on 2019-03-08 18:43  JooJo  阅读(385)  评论(0编辑  收藏  举报

导航