ASP.NET MVC4 部分視圖


【部分視圖】

ASP.NET MVC 里的部分視圖,相當於 Web Form 里的 User Control。我們的頁面往往會有許多重用的地方,可以進行封裝重用。使用 部分視圖 :  1. 可以簡寫代碼。2. 頁面代碼更加清晰、更好維護。

【如何使用】

在視圖里有多種方法可以 加載部分視圖,包括:

Partial()  Action()  RenderPartial()  RenderAction()  RenderPage() 方法。

以下是這些方法的差別:

Partial 與 RenderPartial 方法

1. Razor 語法:@Html.Partial() 與 @{Html.RenderPartial();}

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

RenderPartial 與 RenderAction 方法

1. Razor 語法:@{Html.RenderPartial();}  與 @{Html.RenderAction();}

2. 區別:RenderPartial 不需要創建 Controller 的 Action ,而 RenderAction 需要在 Controller 創建要加載的 Action。

   RenderAction 會先去調用 Contorller 的 Action ,最后再 呈現視圖,所以這里 頁面會在 發起一個鏈接。

  如果這個部分視圖只是一些簡單 的 html 代碼,請使用 RenderPartial。 但如果這個部分視圖 除了有 html 代碼外,     還需要 通過 讀取數據庫里的數據 來渲染,就必須使用 RenderAction 了,因為 它可以在 Action 里調用 Model里的     方法讀取數據庫,渲染視圖后在呈現,而 RenderPartial 沒有 Action,所以無法做到。

RenderAction 與 Action

1. Razor 語法:@{Html.RenderAction();}  與 @Html.Action();

2. 區別:Action 也是直接輸出,和 Partial 一樣,也存在一個轉換的過程。不如 RenderAction 直接輸出到 當前            HttpContext 的效率高。

RenderPage 與 RenderPartial 方法

1. Razor 語法:@{Html.RenderPartial();}  與 @RenderPage()

2. 區別:也可以使用 RenderPage 來呈現部分,但它不能使用 原來視圖的 Model 和 ViewData ,只能通過參數來傳        遞。而 RenderPartial 可以使用原來視圖的 Model 和 ViewData。

【總結】

ASP.NET MVC 引入的 部分視圖(Partial View)和 布局 (Layout)其實都不是新的概念,相當於是 Web Form 里的User Control 和 Master Page 。原理是一樣的,只是 實現技術有一點差別。


免責聲明!

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



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