Ich habe eine Seite:
<%@ Page Inherits="System.Web.Mvc.View<DTOSearchResults>" %>
Und darauf folgendes:
<% Html.RenderPartial("TaskList", Model.Tasks); %>
Hier ist das DTO-Objekt:
public class DTOSearchResults
{
public string SearchTerm { get; set; }
public IEnumerable<Task> Tasks { get; set; }
und hier ist der Teil:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<Task>>" %>
Wenn Model.Tasks nicht null ist, funktioniert alles einwandfrei. Wenn es jedoch null ist, bekomme ich:
Das an das Wörterbuch übergebene Modellelement ist vom Typ 'DTOSearchResults', für dieses Wörterbuch ist jedoch ein Modellelement vom Typ 'System.Collections.Generic.IEnumerable`1 [Task]' erforderlich.
Ich dachte, es muss nicht wissen, welche Überladung verwendet werden soll, also habe ich dies (siehe unten) getan, um es explizit zu machen, aber ich bekomme immer noch das gleiche Problem!
<% Html.RenderPartial("TaskList", (object)Model.Tasks, null); %>
Ich weiß, dass ich das umgehen kann, indem ich nach Null suche oder nicht einmal Null übergebe, aber das ist nicht der Punkt. Warum passiert dies?