Я получаю следующее исключение при вызове Html.RenderPartial
:Ошибка с сильно типизированным частичным видом, когда модель представляет собой свойство на родительскую модели и нулевая
Модели элемент передается в словарь типа «ChildClass», но для этого словаря требуется элемент модели типа «ParentClass».
Эти два класса связаны следующим образом:
public class ChildClass { /* properties */ }
public class ParentClass
{
public ChildClass ChildProperty { get; set; }
/* other properties */
}
У меня есть экземпляр ParentClass
где значение ChildProperty
является null
.
У меня есть два частичных вида, ParentView
(ViewUserControl<ParentClass>
) и ChildView
(ViewUserControl<ChildClass>
).
В первый взгляд, я следующий ...
<% Html.RenderPartial("~/Views/Controls/ChildView.ascx", Model.ChildProperty); %>
Это линия, которая бросает исключение, перечисленные в верхней части этого поста.
Я проверил правильную функциональность, если ChildProperty
не является нулевым. Почему MVC считает, что нулевое значение этого свойства относится к родительскому типу?
Я могу обойти эту проблему, добавив код, который отображает только ChildView
, если ChildProperty
не является нулевым, но эта половина поражает точку зрения.
Я не могу объяснить, сообщение об ошибке, но лучшее решение для этих типов проблем заключается в применении шаблона ** Null Object **: http://en.wikipedia.org/wiki/Null_Object_pattern –