ASP.NET MVC 4 プロジェクトでRestful Routing .NET NuGet パッケージ ( https://github.com/stevehodgkiss/restful-routing ) を使用しています。ドキュメントによると、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" />
}
ユーザーコントローラー.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);
}
再作成する手順:
- ブラウズ: /user/edit
- フォーム表示
- 送信ボタンを押します
- 404 Not Found エラーを受け取る