我的控制器中的操作过载:

    public ActionResult AssignList(int id)
    {
        ...
    }

    [AcceptVerbs((HttpVerbs.Get))]
    public ActionResult AssignList(int id, bool altList)
    {
        ...
    }


我想为两个列表使用相同的局部视图,但是它可能会过滤图像的列表。

我试图使用RenderAction从另一个视图调用它:

<% Html.RenderAction("AssignList", "Image", new { id = Model.PotholeId, altList = true }); %>


但是我收到以下错误:
在以下操作方法之间,当前对控制器类型“ ImageController”的操作“ AssignList”的请求不明确:
类型UsiWeb.Controllers.ImageController上的System.Web.Mvc.ActionResult AssignList(Int32)
类型UsiWeb.Controllers.ImageController上的System.Web.Mvc.ActionResult AssignList(Int32,Boolean)

如何称呼特定的过载?

最佳答案

两种选择:


合并为单个方法,例如:

公共ActionResult AssignList(int id,bool?altList){}
为重载方法命名,例如:

公共ActionResult AssignList(int id){}

[ActionName(“ SomeActionName”)]
公共ActionResult AssignList(int id,bool altList){}


我将向您介绍此SO链接:Can you overload controller methods in ASP.NET MVC?

07-24 18:52