Я получаю следующее исключение на вызове к 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
не является пустым, но эта половина поражений точка наличия представления.
Посмотрите ответ здесь: renderpartial с нулевой моделью передается неправильный тип
Если это сработает, ваше исправление должно выглядеть следующим образом:
<% Html.RenderPartial("~/Views/Controls/ChildView.ascx", Model.ChildProperty,
new ViewDataDictionary()); %>