web-dev-qa-db-ja.com

ASP.Netの現在のページにリダイレクトする

Server.Transfer()を使用して、現在表示されている同じページへのリダイレクトを実行するにはどうすればよいですか?

送信後にフォームをクリアしたい。

同じことを達成するために使用できる他の/より良い方法は何ですか?

48
Fabiano

なぜ_Server.Transfer_ですか? Response.Redirect(Request.RawUrl)は必要なものを取得します。

112
epitka

http://en.wikipedia.org/wiki/Post/Redirect/Get

ASP.Netでこのパターンを実装する最も一般的な方法は、Response.Redirect(Request.RawUrl)を使用することです

リダイレクトと転送の違い を考慮してください。転送は、ブラウザに明確なフォームに転送するよう指示するのではなく、単にクリアされたフォームを返すだけです。それはあなたが望むものかもしれませんし、そうでないかもしれません。

Response.Redirect()は無駄な往復ではありません。 Server.Transfer()でフォームをクリアするスクリプトに投稿し、リロードすると、最後のアクションが実行されてからほとんどのブラウザで再投稿するように求められますHTTP POST。これにより、ユーザーが意図せずに何らかのアクションを繰り返す場合があります。後で無効にする必要がある2番目の注文を出します。

17
kervin