Ошибка с частичным представлением со строгим контролем типов, когда модель является свойством на родительской модели и является пустой

Я получаю следующее исключение на вызове к 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 не является пустым, но эта половина поражений точка наличия представления.

5
задан Richard Everett 17 February 2010 в 13:00
поделиться

1 ответ

Посмотрите ответ здесь: renderpartial с нулевой моделью передается неправильный тип

Если это сработает, ваше исправление должно выглядеть следующим образом:

<% Html.RenderPartial("~/Views/Controls/ChildView.ascx", Model.ChildProperty, 
      new ViewDataDictionary()); %> 
5
ответ дан 14 December 2019 в 19:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: