ASP.NET MVC使用RenderSection渲染節點

來源:互聯網
上載者:User

標籤:blog   http   使用   os   io   2014   ar   cti   

幾天沒有時間做ASP.NET mvc練習,忙於ERP的二次開發。忙裡間,想起MVC還有很多基礎的知識需要撐握與瞭解。記得以前有練習過《MVC主版頁面_Layout.cshtml》 http://www.cnblogs.com/insus/p/3380419.html 渲染Body(RenderBody)的功能。今天練習一下RenderSection渲染節點吧。

在Views\Shared目錄下,建立一個Layout Page:

 

取個名字為_LayoutPage1.cshtml:

 

第#13行代碼:

@RenderSection("myName", required: false) 


名稱為"MyName",第二個參數設為false。這樣的話,在視圖中有定義MyName節點,它就會顯示,反之不顯示。

建立一個控制器Default1Controller.cs:

 

控制器一旦建立成功,在MVC5或以後版本中,自動在Views目錄下,以控制器名建立相應的目錄。下面建立一個視圖:

 

瀏覽結果:

 

 

如果我們在_LayoutPage1.cshtml中,把#13行代碼的參數,設為true:

@RenderSection("myName", required: true)


那說明,我們只要引用這個Layout page的視圖,均要定義:

@section myName{    @*節點代碼*@}


如果沒有定義,視圖在運行時,它會顯示一個異常:

 

其實,我們有另外一個方法,是在Layout page中去判斷:

 

這樣個修改之後,所有引用這個Layout page的視圖,不管是否有定義下面代碼:

@section myName{    @*節點代碼*@}

均不會發生異常。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.