3 回答

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超7個(gè)贊
Andrew,我認(rèn)為您遇到的問題是RenderPartial方法的結(jié)果,該方法使用的是在您傳遞的模型為null時(shí)對(duì)部分視圖進(jìn)行調(diào)用(視圖)的模型。通過執(zhí)行以下操作,可以解決這種奇怪的行為:
<% Html.RenderPartial("TaskList", Model.Tasks, new ViewDataDictionary()); %>
有幫助嗎?

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超9個(gè)贊
稍微短一點(diǎn)的答案是
<% Html.RenderPartial("TaskList", new ViewDataDictionary(Model.Tasks)); %>
之所以可行,ViewDataDictionary是因?yàn)樗鼡碛心P?,并且可以接受模型作為?gòu)造函數(shù)參數(shù)。這基本上通過了“整個(gè)”視圖數(shù)據(jù)字典,該字典當(dāng)然僅包含可能為空的模型

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
一個(gè)解決方案是創(chuàng)建一個(gè)像這樣的HtmlHelper:
public static MvcHtmlString Partial<T>(this HtmlHelper htmlHelper, string partialViewName, T model)
{
ViewDataDictionary viewData = new ViewDataDictionary(htmlHelper.ViewData)
{
Model = model
};
return PartialExtensions.Partial(htmlHelper, partialViewName, model, viewData);
}
在Partial<T>(...)之前的匹配Partial(...),從而方便編譯時(shí)沒有歧義錯(cuò)誤。
我個(gè)人覺得很難理解行為-很難想象這是設(shè)計(jì)選擇嗎?
- 3 回答
- 0 關(guān)注
- 400 瀏覽
添加回答
舉報(bào)