【发布时间】:2010-11-06 03:34:06
【问题描述】:
如果我得到继承自的视图:
System.Web.Mvc.ViewPage<Foo>
Foo 的属性 Bar 的类型为 string
并且视图想要渲染强类型的局部视图,它继承自:
System.Web.Mvc.ViewUserControl<string>
像这样:
Html.RenderPartial("_Bar", Model.Bar);%>
那为什么会抛出这个:
传入字典的模型项的类型为“Foo”
但是这个字典需要一个“System.String”类型的模型项。
什么时候bar没有初始化?
更具体:为什么它传递 Foo,它应该在哪里传递 null?
【问题讨论】:
-
生成局部视图的代码是什么?
-
我有同样的问题,但我自己的类型,而不是 System.String,所以没有“默认”可以代替。也许我应该把它变成一个非强类型的局部视图,并检查传递的类型?
-
@Dave,我没有问题——我知道它是这样工作的。在您的情况下 - 只需在渲染任何内容之前检查 null (创建 RenderPartialIfNotNull htmlhelper 方法可能很方便)。
标签: asp.net-mvc null strongly-typed-view