ASP.NET MVC 部分視圖

來源:互聯網
上載者:User

標籤:style   http   io   color   ar   使用   for   sp   strong   

【部分視圖】

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 。原理是一樣的,只是 實現技術有一點差別。

ASP.NET MVC 部分視圖(轉)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.