【发布时间】:2009-03-16 13:19:29
【问题描述】:
我有一个页面:
<%@ 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 来解决此问题,但这不是重点。为什么会这样?
【问题讨论】: