投稿経由でフォームを送信し、同じURLまたは別のURLにリダイレクトするASP.NET MVCパターンは、コード作成が非常に簡単です。ASP.NET MVCのPOSTリダイレクトGETにはどのような方法がありますか?
は、このシナリオを想像:
- ユーザーは、彼らはそれを編集して、そのページ上で狂った何かを見る42.
- を表示および編集製品に/製品/ 42 /編集となり、保存ヒット。アクションは、データを更新し、またはにリダイレクトします。これは、/製品/ 42 /編集
- にPOSTを引き起こし/製品/ 42 /編集
- のビューを返します。ユーザーは、更新されたデータを見ていますハッピー。
- 1時間後に、他の誰かが製品#42を混乱させるかどうかを確認するために、リフレッシュをクリックします。
- 最後に/products/42/editの検索がPOSTだったので、ブラウザはフォームデータの再送信を求めます。これは他人のデータを上書きする可能性があるので、迷惑なとが危険です。
私はPOSTをするために、2つの異なるURLを使用して(たとえば/製品/ 42 /編集と/製品/ 42)、ブラウザは、まだ再投稿をお願いすることとなってもいることを恐れますデータを破壊する可能性があります。私は間違っていますか?
製品の変更をサブミットした後、ユーザーはリフレッシュして更新されたビューを得ることができます。
更新私の質問と私のデザインは混乱していました。 POSTとGETの間でURL(アクション)を共有するのは悪い考えでした。その2つが異なる場合、私は "リフレッシュの原因rePOST"の問題がないと仮定するのは当然ですか?
私はこの問題を理解していません。ユーザーが編集内容を送信すると、ユーザーがデータベースに書き込まれ、ユーザーは製品の現在のビューに移動します。彼らはF5と製品アップデートの現在のビューにヒットしました。問題はどこだ? –
コントローラのメソッドとビューにコードの一部を投稿することを検討してください。その結果、何が起こっているのかがわかります。 –
私は質問を明確にしました(私は願っています)。 POSTとGETの間でURLを共有するのは悪い考えでした。その2つが異なる場合、私は "リフレッシュの原因rePOST"の問題がないと仮定するのは当然ですか? –