C#中Html.RenderPartial與Html.RenderAction的區(qū)別分析
本文較為詳細的講解了C#中Html.RenderPartial與Html.RenderAction的區(qū)別,具體分析如下:
Html.RenderPartial與Html.RenderAction這兩個方法都是用來在界面上嵌入用戶控件的。
Html.RenderPartial是直接將用戶控件嵌入到界面上:
在頁面直接渲染 視圖結果 視圖必須存在!
<%Html.RenderPartial("LogOnUserControl");%>
或
<%Html.RenderPartial("~/Areas/Comm/Views/Shared/LogOnUserControl.ascx");%>
注意:用第一種方法時,用戶控件必須放在調用者同一目錄下,也可以放在View/Shared中。
Html.RenderAction則通過Controller中的Action來調用用戶控件
在頁面直接渲染 Action的結果 可以指定Controller 返回的可以是繼承自ActionResult的所有子類型
Controller:----用戶控件所在Controller
public ActionResult UserControl() { return PartialView(); }
View:----調用用戶控件的View
<%Html.RenderAction("UserControl","Controller");%>
個人比較喜歡用RenderPartial
RenderPartial和RenderAction都是在Asp.net Mvc中用來顯示PartialView的方法,所以在什么時候用哪個方法就是碰到的第一個問題。而要做出正確的選擇就需要對這兩個都有充分的了解,并且 知道其異同點。這也是本文的主題。
兩者的相同點:
RenderPartial和RenderAction通常都被用來顯示一個功能相對獨立的“塊”,比如說顯示菜單或者導航條。 兩者輸出的結果都被作為調用的View的一部分顯示。
兩者的不同點:
RenderPatial的數據來自于調用的View,而RenderAction來自自己。
RenderAction會發(fā)起一個新的Request,而RenderPatial不會。
如何選擇:
根據兩者不同點中的第二點,由于RenderAction會調用一個新的Action方法,而Asp.net Mvc中Action是最小的緩存單位,因此如果某一個“塊”的數據比較固定,不會因為訪問者的不同而發(fā)生變化,那么這時就是使用 RenderAction的時候了。 題外話,對于RenderAction會發(fā)起一個新的Request,感覺對調用頁面的流程有點破壞。一個View在顯示的時候,自己又發(fā)起一個 Request去獲取數據來顯示,顯然有點破壞了作為一個View的原則.
相關文章
C#?DateTime.Now.ToString()?用法示例講解
這篇文章主要介紹了C#?DateTime.Now.ToString()?用法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-01-01