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 关注
- 355 浏览
添加回答
举报