相关疑难解决方法(0)

带有null模型的renderpartial传递错误的类型

我有一个页面:

<%@ Page Inherits="System.Web.Mvc.View<DTOSearchResults>" %>
Run Code Online (Sandbox Code Playgroud)

在其上,以下内容:

<% Html.RenderPartial("TaskList", Model.Tasks); %>
Run Code Online (Sandbox Code Playgroud)

这是DTO对象:

public class DTOSearchResults
{
    public string SearchTerm { get; set; }
    public IEnumerable<Task> Tasks { get; set; }
Run Code Online (Sandbox Code Playgroud)

这是部分:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<Task>>" %>
Run Code Online (Sandbox Code Playgroud)

当Model.Tasks不为null时,一切正常.但是当它为null时,我得到:

传递到字典中的模型项的类型为'DTOSearchResults',但此字典需要类型为'System.Collections.Generic.IEnumerable`1 [Task]'的模型项.

我认为它一定不知道使用哪个重载,所以我这样做(见下文)是明确的,但我仍然得到同样的问题!

<% Html.RenderPartial("TaskList", (object)Model.Tasks, null); %>
Run Code Online (Sandbox Code Playgroud)

我知道我可以通过检查null,或者甚至不传递null来解决这个问题,但这不是重点.为什么会这样?

asp.net-mvc renderpartial

193
推荐指数
6
解决办法
5万
查看次数

标签 统计

asp.net-mvc ×1

renderpartial ×1