私はページを持っています:
<%@ 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 を渡さなくても、これを回避できることはわかっていますが、それは重要ではありません。なぜこうなった?