標籤:
ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction區別
對這四個的區別做一個總結,清理一下思路,方便以後使用:
1、帶有Render的方法傳回值是void,在方法內部進行輸出;不帶的傳回值類型為MvcHtmlString,所以只能這樣使用:
@Html.Partial 對應 @{Html.RenderPartial(....);}
@Html.Action 對應 @{Html.RenderAction(....);}
2、Action、RenderAction載入方法的視圖,執行Controller → Model → View的順序,然後把產生的頁面帶回到原來的View中再回傳。而Partial、RenderPartial直接載入視圖檔案內容
3. Html.Partial可以直接提供使用者控制項名作為參數,而Html.Action需要有對應的Action,在Action內部返回PartailResult(即retun PartialView())。
4、對於簡單的沒有任何邏輯的使用者控制項,推薦使用Html.Partial;對於需要設定一些Model的使用者控制項,推薦使用Html.Action。當然,有Model資料也是可以使用Html.Partial方法的,可以看方法的重載。
5、使用Html.Action有個好處,就是可以根據不同的情境選擇不同的使用者控制項。比如:
@Html.Action("UserInfoControl")
在對應的UserInfoControl這個Action中,在使用者未登入的時候,可以retun PartialView("LogOnUserControl");登入後,可以retun PartialView("UserInfoControl");
@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction區別