こんにちは山田です。
エアコンと床暖のランニングコストはどっちがお得なんだろうと
最近気になっています。
季節ネタはさておき今回は、使用していたリダイレクトメソッドを
調べてみたのでその備忘録になります。
開発環境:ASP.NET 2.0
■HttpResponse.Redirect メソッド (String)とは
ASP.NETで画面遷移行う時Response.Redirect(string)を使います。
具体的には、クライアントに現在の処理を終了させて指定したURL(stringのこと)に遷移させることができます。
try-catch文を記すと常に例外が起こる仕様になっているようで
その時は第二引数にfalseを指定させて、Response.Endを呼ばせなくすることができるそうです。
調べたら似たようなメソッドで HttpServerUtility.Transferメソッドというものがありました。
■HttpServerUtility.Transferメソッドとの違い
このメソッドも指定したページへと処理を移すという点ではRedirectメソッドと同じなのですが、
動作の中身が大きく違うようです。
大きく違う点は
Redirectメソッドの場合は、ユーザーからの見た目上では、ポストバックが一度だけのように見えるが
実はリクエストとレスポンスがそれぞれが2回ずつ起きているのです。
一度目のレスポンスで、ポストした情報が消えてしまうので、ポストバックをさせたい場合はこの方法を使うことができません。
一方、Transferメソッドの場合は、ページが書き換わったあとページ遷移はサーバ内部で行われるため。
遷移前にページで生成したオブジェクトが、メモリ上に残っているので遷移先のページからアクセスすることができます。
ページをまたいでポストバックできるってことですね。便利そうです。
エアコンと床暖のランニングコストはどっちがお得なんだろうと
最近気になっています。
季節ネタはさておき今回は、使用していたリダイレクトメソッドを
調べてみたのでその備忘録になります。
開発環境:ASP.NET 2.0
■HttpResponse.Redirect メソッド (String)とは
ASP.NETで画面遷移行う時Response.Redirect(string)を使います。
具体的には、クライアントに現在の処理を終了させて指定したURL(stringのこと)に遷移させることができます。
try-catch文を記すと常に例外が起こる仕様になっているようで
その時は第二引数にfalseを指定させて、Response.Endを呼ばせなくすることができるそうです。
調べたら似たようなメソッドで HttpServerUtility.Transferメソッドというものがありました。
■HttpServerUtility.Transferメソッドとの違い
このメソッドも指定したページへと処理を移すという点ではRedirectメソッドと同じなのですが、
動作の中身が大きく違うようです。
大きく違う点は
Redirectメソッドの場合は、ユーザーからの見た目上では、ポストバックが一度だけのように見えるが
実はリクエストとレスポンスがそれぞれが2回ずつ起きているのです。
一度目のレスポンスで、ポストした情報が消えてしまうので、ポストバックをさせたい場合はこの方法を使うことができません。
一方、Transferメソッドの場合は、ページが書き換わったあとページ遷移はサーバ内部で行われるため。
遷移前にページで生成したオブジェクトが、メモリ上に残っているので遷移先のページからアクセスすることができます。
ページをまたいでポストバックできるってことですね。便利そうです。