@RenderBody
@RenderBody是布局頁(_Layout.cshtml)通過占位符@RenderBody占用獨立部分,當創建基於此布局頁的試圖時,視圖的內容會和布局頁合並,而新創建的視圖內容會通過布局頁的@ReanderBody方法呈現在Body之間。
此方法不需要參數,且只能出現一次。
@RenderPage
要引用呈現的視圖,如網站頭部、底部可單獨放在一個共享的視圖文件夾中,然后在布局頁中使用@RenderPage方法來引用,方法如下:
@RenderPage("~/Views/Shared/_Header.cshtml") @RenderBody() @RenderPage("~/Views/Shared/_Bottom.cshtml")
@RenderSection
@RenderSection就是在Layout布局頁中定義了分段,留給使用該布局頁的視圖來實現。@Rendersection提供兩個參數。
注:@RenderSection("head"),則表示視圖中必須實現,否則會報異常錯誤。
@RenderSection("head", required: true),則表示視圖中也必須實現,否則會報異常錯誤。
@RenderSection("head", required: false),則表示視圖中可實現或不實現。
RenderSection實現默認內容:
@if (IsSectionDefined("head")) { @RenderSection("head", false); } else { <p>head的默認內容</p> }
@IsSectionDefined是判斷某個分段是否存在,如果存在就輸出,否則輸出默認內容。
在視圖頁中的實現方式:
@section head
{
........
}
