5

我在调用时收到以下异常Html.RenderPartial

传入字典的模型项是“ChildClass”类型,但该字典需要“ParentClass”类型的模型项。

这两个类与此相关:

public class ChildClass { /* properties */ }

public class ParentClass
{
    public ChildClass ChildProperty { get; set; }

    /* other properties */
}

我有一个ParentClassChildProperty的实例null

我有两个部分观点,ParentView( ViewUserControl<ParentClass>) 和ChildView( ViewUserControl<ChildClass>)。

在第一个视图中,我有以下...

<% Html.RenderPartial("~/Views/Controls/ChildView.ascx", Model.ChildProperty); %>

这是引发本文顶部列出的异常的行。

ChildProperty如果不为空,我已经验证了正确的功能。为什么 MVC 认为这个属性的 null 值是父类型?

我可以通过添加仅呈现ChildViewifChildProperty不为 null 的代码来解决此问题,但这一半会破坏拥有视图的观点。

4

1 回答 1

5

看看这里的答案:renderpartial with null model gets pass the wrong type

如果它有效,您的修复应该如下所示:

<% Html.RenderPartial("~/Views/Controls/ChildView.ascx", Model.ChildProperty, 
      new ViewDataDictionary()); %> 
于 2010-02-17T14:34:06.007 回答