鄉下人重拾MVC——@RenderBody @RenderSection @Html.Partial @Html.Action @Html.RenderPartial @Html.RenderActi

1.   @RenderBody() css

  表明:是一個佔位符,是留給子頁面的位置,子頁面使用這個模版,子頁面中的內容會被放到@RenderBody的位置。合併後看成一個總體加載web

2.   @RenderSection(string,boolean) 緩存

  第一個參數是string類型,標明名稱;第二個參數是boolean類型,表示子頁面是否必需要寫它。spa

  表明:是個佔位符,解決了只有一個RenderBody的問題。好比,子頁面要引入本身css文件,而@RenderBody寫在了模板的<body>的最下面,而css想要加到模板的<head>中,這時候只須要在模板的head中加入 @RenderSection("css",false)  在子頁面上加入 : @section css{ //是引用的css }code

也能夠這樣:對象

//先判斷目標頁中是否要加載這些片斷,再加載
@if(IsSectionDefined("css")) //該值指示是否在頁中定義了指定部分
{
    @RenderSection("css")  //將呈現指定部分的內容
}

3.   @Html.Partial()blog

  返回值類型爲MvcHtmlString,是一個字符串;字符串

  直接加載視圖文件內容;string

  能夠直接提供用戶控件名做爲參數;it

  簡單的沒有任何邏輯的用戶控件,推薦使用Partial;

以HTML-encoded 字符串展現 
        結果以HTML-encoded 字符串展現 
        返回的是string類型,因此結果能夠存儲在變量裏 
        使用簡單,無需建立Action 
        格式如:@Html.Partial("_Comments") 

4.   @Html.Action()

  返回值類型爲MvcHtmlString,是一個字符串;

  從新執行一次Controller→Model→View的順序,而後把產生的頁面帶回到原來的View中再回傳;

  須要有對應的Action,在Action內部返回PartialResult(即return PartialView());

  對於須要設置一些Model的用戶控件,推薦使用Action;

  在return PartialView時能夠根據不一樣的場景選擇不一樣的用戶控件;

        直接展現爲HtmlString 
        須要建立對應的child action 
        能夠緩存partial view 
        格式如:@{Html.Action("Category","Home");} 

5.   @Html.RenderPartial()

  返回值是void,在方法內部進行輸出;

  直接加載視圖文件內容;

  能夠直接提供用戶控件名做爲參數;

  簡單的沒有任何邏輯的用戶控件,推薦使用Partial;

將分部視圖直接寫入響應輸出流,因此只能放在代碼模塊中,不能放在表達式中。 
        這個方法會直接將結果寫入到當前請求的http response數據流中,這覺得着它使用了和當前webpage/template使用的相同的TextWrite對象 
        方法沒有返回值 
        不須要建立action,使用簡單 
        格式以下:@{Html.RenderPartial("Links")};"Links"就是分部視圖頁的名稱 
        這個方法比Partial方法更快,由於它直接將結果系統到當前響應的數據流中 

6.   @Html.RenderAction()

  返回值是void,在方法內部進行輸出;

  從新執行一次Controller→Model→View的順序,而後把產生的頁面帶回到原來的View中再回傳;

  須要有對應的Action,在Action內部返回PartialResult(即return PartialView());

  對於須要設置一些Model的用戶控件,推薦使用Action;

  將分部視圖直接寫入響應輸出流。 ;

        和上個同樣,執行結果會直接寫入當前響應的數據流中         須要建立child action方法         格式如:@{Html.RenderAction("Category","Home");}         若是你想緩存partial view,這是最好的選擇         這個方法比Action()方法快,基於第一條緣由

相關文章
相關標籤/搜索