我的控制器中的操作过载:
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?