Почему эти два действия считаются неоднозначными, несмотря на разные параметры?

Текущий запрос действия «Индекс» для типа контроллера «UsersController» неоднозначен для следующих методов действия: System.Web.Mvc.ActionResult PostUser (Models.SimpleUser) для типа Controllers.UsersController System.Web.Mvc.ActionResult PostUser (Int32, Models.SimpleUser) в типе Controllers.UsersController

Происходит, когда я пытаюсь выполнить POST website.com/users/ со значениями формы.

Когда НЕТ ID (веб-сайт .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" }
    );
10
задан MetaGuru 13 July 2011 в 14:34
поделиться