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

У меня есть страница:

<%@ Page Inherits="System.Web.Mvc.View<DTOSearchResults>" %>

И на нем, следующее:

<% Html.RenderPartial("TaskList", Model.Tasks); %>

Вот объект DTO:

public class DTOSearchResults
{
    public string SearchTerm { get; set; }
    public IEnumerable<Task> Tasks { get; set; }

и вот частичное:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<Task>>" %>

Когда Модель. Задачи не являются пустыми, все хорошо работает. Однако, когда его пустой указатель я добираюсь:

Образцовый объект, переданный в словарь, имеет тип 'DTOSearchResults', но этот словарь требует образцового объекта типа 'Система. Наборы. Универсальный. IEnumerable '1 [Задача]'.

Я полагал, что это не должно знать, какая перегрузка использовать, таким образом, я сделал это (см. ниже), чтобы быть явным, но я все еще получаю ту же проблему!

<% Html.RenderPartial("TaskList", (object)Model.Tasks, null); %>

Я знаю, что могу работать вокруг этого путем проверки на пустой указатель или даже передающий пустой указатель, но это не точка. Почему это происходит?

193
задан John Saunders 20 August 2012 в 03:20
поделиться

1 ответ

Andrew I думает проблема, которую Вы получаете, результат метода RenderPartial с помощью вызова (представление) модель к частичному представлению, когда модель, которую Вы передаете, является пустой.. можно обойти это нечетное поведение путем выполнения:

<% Html.RenderPartial("TaskList", Model.Tasks, new ViewDataDictionary()); %>

Это помогает?

341
ответ дан meandmycode 23 November 2019 в 05:26
поделиться
Другие вопросы по тегам:

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