1

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);
}

再作成する手順:

  1. ブラウズ: /user/edit
  2. フォーム表示
  3. 送信ボタンを押します
  4. 404 Not Found エラーを受け取る
4

1 に答える 1

1

試す

@Html.HttpMethodOverride(HttpVerbs.Put)

それ以外の

@Html.PutOverrideTag()
于 2013-02-20T15:58:46.143 に答える