У меня есть страница:
<%@ 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>>" %>
Когда Model.Tasks не имеет значения null, все работает нормально. Однако, когда его ноль, я получаю:
Элемент модели, передаваемый в словарь, имеет тип 'DTOSearchResults', но для этого словаря требуется элемент модели типа 'System.Collections.Generic.IEnumerable`1 [Task]'.
Я подумал, что он не должен знать, какую перегрузку использовать, поэтому я сделал это (см. Ниже), чтобы быть явным, но я все еще получаю ту же проблему!
<% Html.RenderPartial("TaskList", (object)Model.Tasks, null); %>
Я знаю, что могу обойти это, проверяя на ноль, или даже не передавая ноль, но это не главное. Почему это происходит?