2

マイページの仕組み

クライアント検証が有効になっているテキストボックスが 3 つあります。

フォームデータを投稿するための送信ボタンがあります。

問題

送信ボタンをクリックすると、Post メソッドに移動します。テキストボックスに値を入力していないと、サーバー側 (Http Post) からエラーがスローされます。

次に、テキストボックスに値を入力し、ブラウザーを更新して、Get ではなく Post メソッドに入ります!!!

これに関するヘルプ??

4

1 に答える 1

5

これは、リフレッシュ時に最後のリクエストを再発行するブラウザーのデフォルトの動作であり、この場合はたまたま POST です。

リフレッシュ時に再 POST を防止する場合は、MVC で PRG (POST-Redirect-GET) パターンを実装する必要があります。これは、POST を受信したコントローラーが、処理後に GET 要求を使用してリダイレクトする場所です。したがって、最後のブラウザー要求は、更新時に再発行される GET です。

[HttpPost]
public ActionResult Create(Model model) {
    if (ModelState.IsValid) {
      //do processing
         return RedirectToAction("Details", new { id = model.Id })
    }
    return View(model);
}
于 2013-01-30T09:34:14.943 に答える