Основная проблема заключается в том, что между вашими двумя методами действий существует некоторая неопределенность, поскольку привязка модели не помогает определить конфигурацию маршрутизации.Ваша текущая маршрутизация просто указывает на метод индекса.
У вас может быть тот же URL-адрес, но было бы полезно назвать ваши действия по-другому, а затем применить несколько новых маршрутов.
[HttpPost]
public ActionResult Create(SimpleUser u)
{
return Content("User to be created...");
}
[HttpPost]
public ActionResult Edit(int id, SimpleUser u)
{
return Content("User to be updated...");
}
Изатем в вашей маршрутизации попробуйте
routes.MapRoute(
"UserEdit",
"users/{id}",
new { controller = "Users", action = "Edit",
httpMethod = new HttpMethodConstraint("POST") });
routes.MapRoute(
"UserCreate",
"users",
new { controller = "Users", action = "Create",
httpMethod = new HttpMethodConstraint("POST") });
Маршруты будут ограничены только событиями POST, что означает, что вы все равно можете добавить некоторую маршрутизацию для ваших методов GET на том же маршруте.Например, для списка или чего-то еще.