最佳答案
我有一页:
<%@ 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>>" %>
当模型。Tasks不是空的,一切正常。然而,当它为空时,我得到:
传递给字典的模型项是类型的 'DTOSearchResults'但是这个字典需要一个类型的模型项 1[任务]' System.Collections.Generic.IEnumerable。< / p >
我认为它一定不知道使用哪个重载,所以我这样做(见下文)是明确的,但我仍然得到相同的问题!
<% Html.RenderPartial("TaskList", (object)Model.Tasks, null); %>
我知道我可以通过检查null来解决这个问题,甚至不传递null,但这不是重点。为什么会这样?