当前对控制器类型“UsersController”的“Index”操作的请求在以下动作方法之间存在歧义: 类型Controllers.UsersController上的Models.SimpleUser的System.Web.Mvc.ActionResult PostUser(Models.SimpleUser) 类型Controllers.UsersController上的Int32、Models.SimpleUser的System.Web.Mvc.ActionResult PostUser(Int32, Models.SimpleUser)
当我尝试使用表单值提交website.com/users/时会出现此情况。
当没有ID(website.com/users/)时,我希望它创建一个新用户,当有一个ID(例如/users/51)时,我希望它更新该用户,那么如何区分这两个动作?
以下是这两个动作:
[HttpPost]
[ActionName("Index")]
public ActionResult PostUser(SimpleUser u)
{
return Content("User to be created...");
}
[HttpPost]
[ActionName("Index")]
public ActionResult PostUser(int id, SimpleUser u)
{
return Content("User to be updated...");
}
这是MapRoute:
routes.MapRoute(
"Users",
"users/{id}",
new { controller = "Users", action = "Index" }
);