當前位置:編程學習大全網 - 源碼下載 - ASP.NET MVC3 Razor 布局頁和分部頁 使用model

ASP.NET MVC3 Razor 布局頁和分部頁 使用model

asp.net MVC 4.0中總結 視圖裏加載布局頁和分部頁幾種方法

@RenderPage()

但它不能使用 原來視圖的 Model 和 ViewData ,只能通過參數來傳遞。

1 @RenderPage("~/Shared/Component/Dialog.cshtml", new { title = "Hello world!", content="Nani" })

分部視圖接收數據通過Page

1 <div id="dialog" title="@Page.title" style="display: none;">

2 <p>

3 @Page.title

4 </p>

5 </div>

@Html.Partial()

用於將分部視圖渲染為字符串

@Html.Partial("_PartialPage1",model,ViewData)直接返回MvcHtmlString填充

1 @Html.Partial("Component/Dialog", null, new ViewDataDictionary { { "title", "Hello world!" }, { "content", "Nani?" } })

Razor子視圖裏使用 ViewBag 來獲取傳遞的數據

1 <div id="dialog" title="@ViewBag.title" style="display: none;">

2 <p>

3 @ViewBag.content

4 </p>

5 </div>

傳遞強類型到部分視圖

1 @{

2 var args = new Dictionary<string,string>();

3 args["redirectController"] = "Admin";

4 args["redirectAction"] = "User";

5 }

6 @Html.Partial("_childPartial",args)

_childPartial.cshtml

1 @model Dictionary<string,string>

2 <div>@Model["redirectController"]</div>

3 <div>@Model["redirectAction"]</div>

@RenderPartial()

將分布視圖直接寫入響應輸出流,所以只能直接放在代碼塊中,不能放在表達式中(返回值是void)

RenderPartial 不需要創建 Controller 的 Action ,而 RenderAction 需要在 Controller創建要加載的 Action。 RenderAction 會先去調用 Contorller 的 Action ,最後再 呈現視圖,所以這裏 頁面會在 發起壹個鏈接。 如果這個部分視圖只是壹些簡單 的 html 代碼,請使用 RenderPartial。 但如果這個部分視圖 除了有 html 代碼外,還需要 通過 讀取數據庫裏的數據 來渲染,就必須使用 RenderAction 了,因為 它可以在 Action 裏調用 Model裏的 法讀取數據庫,渲染視圖後在呈現,而 RenderPartial 沒有 Action,所以無法做到。

Partial 可以直接輸出內容,它內部是 將 html 內容轉換為 string 字符(MVCHtmlString),然後緩存起來, 最後在壹次性輸出到頁面。顯然,這個轉換的過程,會降低效率,所以通常使用 RenderPartial 代替。

@Html.Action()

  • 上一篇:給女生表白的話真實點
  • 下一篇:珀萊雅紅寶石面霜成分安全嗎
  • copyright 2024編程學習大全網