C# 在路由字典中将元素传递给控制器(尽管元素等效)时,类型不匹配

C# 在路由字典中将元素传递给控制器(尽管元素等效)时,类型不匹配,c#,razor,controller,parameter-passing,C#,Razor,Controller,Parameter Passing,我遇到了一个意想不到的问题 我有一个 class SuperModel { // many properties. public IList<product> listeProduct{ get; set; } } 在同一页中,我在此处称为局部视图: <div class="customDiv">MAIN CONTENT AREA @{Html.RenderPartial("~/Views/Products/Index.cshtml", Model.listeP

我遇到了一个意想不到的问题

我有一个

class SuperModel {
// many properties.
    public IList<product> listeProduct{ get; set; }
}
在同一页中,我在此处称为局部视图:

<div class="customDiv">MAIN CONTENT AREA @{Html.RenderPartial("~/Views/Products/Index.cshtml", Model.listeProduct);}</div>
MAIN CONTENT AREA@{Html.RenderPartial(“~/Views/Products/Index.cshtml”,Model.listProduct);}
请注意,Model.listProduct表示超级模特的属性:

 public IList<product> listeProduct{ get; set; }
公共IList ListProduct{get;set;} 最后在行动结果中:

public ActionResult Index(List<product> list)
{
    return View(list);
}
公共行动结果索引(列表)
{
返回视图(列表);
}
但是代码停止了,因为它说我正在字典中传递一个SuperModel类型的对象,并且期望一个列表。。。 所以我被困在这里,因为我不知道如何在我所有的部分视图中传递我想要的超级模特类的属性

我想razor会这样解释:

List listeP=超级模特。listeProduct


我该怎么办?

您正在使用
RenderPartial
调用要渲染的部分视图,同时希望调用action方法并返回部分视图

为此,您需要调用
RenderAction
方法,该方法将调用动作方法,如:

@{Html.RenderAction("Index","Controller name",new { list = Model.listeProduct});}
@Html.Action("Index","Controller name",new { list = Model.listeProduct})
或者您也可以尝试使用
Html.Action
方法,如:

@{Html.RenderAction("Index","Controller name",new { list = Model.listeProduct});}
@Html.Action("Index","Controller name",new { list = Model.listeProduct})

为什么要将从一个控制器收到的列表发送到另一个控制器。这似乎是一个巨大的问题。。如。。下一个控制器要做什么逻辑,而原来的控制器一开始没有处理?你好!谢谢,不过没关系,我已经建立了。我只是不得不让托利斯