我有一个页面:
<%@ 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不为空时,一切正常。但是当它为空时,我会得到以下错误:
传递给字典的模型项的类型为'DTOSearchResults',但该字典需要一个类型为'System.Collections.Generic.IEnumerable`1[Task]'的模型项。
我想这是因为它不知道要使用哪个重载,所以我显式地进行了如下操作,但是我仍然遇到相同的问题!
<% Html.RenderPartial("TaskList", (object)Model.Tasks, null); %>
我知道我可以通过检查null或者不传递null来解决这个问题,但那不是重点。为什么会发生这种情况?