Я использую пакет Restful Routing .NET NuGet (https://github.com/stevehodgkiss/restful-routing) в моем проекте ASP.NET MVC 4. Согласно документации, я должен иметь возможность отправить форму, используя глагол PUT для действия Update в контроллере, поместив @HTML.PutOverrideTag()
в форму. Я не смог заставить это работать. Каждый раз, когда я отправляю форму, я получаю ошибку 404 Not Found. Может ли кто-нибудь подтвердить, удалось ли им заставить это работать должным образом? Мой код ниже:
routeconfig.cs:
map.Resources<UsersController>();
просмотры\пользователи\edit.cshtml:
@using (Html.BeginForm("update", "users", new { id = Model.Id }))
{
@Html.PutOverrideTag()
<input id="user_submit" name="commit" type="submit" value="Update" />
}
UsersController.cs:
[Authorize]
[HttpGet]
public ActionResult Edit(int id)
{
var user = UserRepository.GetById(id);
return View(user);
}
[Authorize]
[HttpPut]
public ActionResult Update(int id, User user)
{
return View("edit", user);
}
Шаги для воссоздания:
- Перейдите к: /пользователь/изменить
- Отображает формы
- Нажмите кнопку отправки
- Получите ошибку 404 Not Found