3 回答

TA貢獻1811條經(jīng)驗 獲得超5個贊
1、帶有Render的方法返回值是void,在方法內(nèi)部進行輸出;不帶的返回值類型為MvcHtmlString,所以只能這樣使用:
@Html.Partial 對應(yīng) @{Html.RenderPartial(....);}
@Html.Action 對應(yīng) @{Html.RenderAction(....);}
2、Html.Partial可以直接提供用戶控件名作為參數(shù),而Html.Action需要有對應(yīng)的Action,在Action內(nèi)部返回PartailResult(即retun PartialView())。
3、對于簡單的沒有任何邏輯的用戶控件,推薦使用Html.Partial;對于需要設(shè)置一些Model的用戶控件,推薦使用Html.Action。當(dāng)然,有Model數(shù)據(jù)也是可以使用Html.Partial方法的,可以看方法的重載。
4、使用Html.Action有個好處,就是可以根據(jù)不同的場景選擇不同的用戶控件。
比如:
@Html.Action("UserInfoControl")
在對應(yīng)的UserInfoControl這個Action中,在用戶未登錄的時候,可以retun PartialView("LogOnUserControl");登錄后,可以retun PartialView("UserInfoControl");

TA貢獻2080條經(jīng)驗 獲得超4個贊
1、Action 、 RenderAction
Action 方法以字符串的形式返回子視圖,可以直接被呈現(xiàn)。RenderAction方法在適當(dāng)?shù)牡胤匠尸F(xiàn)子視圖。
//One alternative (renders a string)
<%= Html.Action("ChildList") %>
//Another alternative (renders in place)
<% Html.RenderAction("ChildList"); %>
2、Partial 、 RenderPartial
Partial 方法以字符串的形式返回子視圖,可以直接被呈現(xiàn)。RenderPartial方法在適當(dāng)?shù)牡胤匠尸F(xiàn)子視圖。
<% Html.RenderPartial("視圖名", Model.Products); %>
//或是指定UserControl的路徑
<% Html.RenderPartial("~/Views/Product/ProductList.ascx【視圖路徑】", Model.Products);%>
3、區(qū)分:
1)、Action 、Partial 以<%=開頭后面無需加; 。RenderAction、RenderPartial 以<%開頭 后面加; 。
2)、Action、RenderAction加載方法的視圖,執(zhí)行Controller → Model → View的順序,然后把產(chǎn)生的頁面帶回到原來的View中再回傳。
Partial、RenderPartial直接加載視圖文件內(nèi)容

TA貢獻1779條經(jīng)驗 獲得超6個贊
Html.RenderPartial與Html.RenderAction這兩個方法都是用來在界面上嵌入用戶控件的。
Html.RenderPartial是直接將用戶控件嵌入到界面上:
<%Html.RenderPartial("LogOnUserControl");%>
或
<%Html.RenderPartial("~/Areas/Comm/Views/Shared/LogOnUserControl.ascx");%>
注意:用第一種方法時,用戶控件必須放在調(diào)用者同一目錄下,也可以放在View/Shared中。
Html.RenderAction則通過Controller中的Action來調(diào)用用戶控件
Controller:----用戶控件所在Controller
public ActionResult UserControl()
{
return PartialView();
}
View:----調(diào)用用戶控件的View
<%Html.RenderAction("UserControl","Controller");%>
- 3 回答
- 0 關(guān)注
- 336 瀏覽
添加回答
舉報