2013年9月21日 星期六

MVC - Razor在處理Partial, RenderPartial, RenderAction的不同

MVC在處理View的呈現上有三種方式可以引入其它View到本頁中;而這三者所回傳的資料與應用都不太相同。

Partial   
   Partial所回傳的是一個型別為MvcHtmlString的物件。在View中使用這個方法的目的是為了將部份檢視載入到本頁中,寫法如下:
@Html.Partial("ViewName")
RenderPartial
   RenderPartial回傳Void亦即它並不回傳任何資料。RenderPartial會將資料沖刷入Response Buffer中並且一口氣在Response內容中夾帶內容;與Partial不同的是,RenderPartial通常應用於資料量較大的部份檢視。在速度上,亦是RenderPartial較快;但是Partial的好處是可以當成Function來使用,可以自由控制MvcHtmlString的處理。寫法如下:
@Html.RenderPartial("ViewName")

 
上述兩種方法都不會使用到Controller。
RenderAction
   RenderAction會呼叫某個指定的Controller中的某個Action。RenderAction本身會帶ViewData而且會呼叫Server端的Controller執行操作,如此可做到動態部份檢視的效果。寫法如下:
@Html.RenderAction("ControllerName","ActionName")
 

沒有留言:

張貼留言