ページがあります:
<%@ 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でない場合、すべてが正常に機能します。ただし、そのnullの場合、次のようになります。
ディクショナリに渡されたモデルアイテムのタイプは「DTOSearchResults」ですが、このディクショナリにはタイプ「System.Collections.Generic.IEnumerable`1 [Task]」のモデルアイテムが必要です。
使用するオーバーロードを知らないようにする必要があると考えたので、これを明示的に(下記を参照)行いましたが、それでも同じ問題が発生します!
<% Html.RenderPartial("TaskList", (object)Model.Tasks, null); %>
私はnullをチェックするか、nullを渡さなくてもこれを回避できることを知っていますが、それは重要ではありません。なぜこうなった?