ASP.NET MVC之Layout布局與@RenderBody、@RenderPage、@RenderSection


@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
{
      ........
}

源碼下載


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM