3 回答

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

TA貢獻1829條經驗 獲得超9個贊
稍微短一點的答案是
<% Html.RenderPartial("TaskList", new ViewDataDictionary(Model.Tasks)); %>
之所以可行,ViewDataDictionary是因為它擁有模型,并且可以接受模型作為構造函數參數。這基本上通過了“整個”視圖數據字典,該字典當然僅包含可能為空的模型

TA貢獻1829條經驗 獲得超7個贊
一個解決方案是創建一個像這樣的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(...),從而方便編譯時沒有歧義錯誤。
我個人覺得很難理解行為-很難想象這是設計選擇嗎?
- 3 回答
- 0 關注
- 402 瀏覽
添加回答
舉報