こんにちは山田です。
エアコンと床暖のランニングコストはどっちがお得なんだろうと
最近気になっています。
季節ネタはさておき今回は、使用していたリダイレクトメソッドを
調べてみたのでその備忘録になります。
開発環境: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メソッドの場合は、ページが書き換わったあとページ遷移はサーバ内部で行われるため。
遷移前にページで生成したオブジェクトが、メモリ上に残っているので遷移先のページからアクセスすることができます。
ページをまたいでポストバックできるってことですね。便利そうです。
HttpResponse.Redirect メソッド (String)とは
Related Posts:
Google Maps JavaScript APIを使って、マップをWebページに埋め込む方法こんにちわ、開発者のⅠです。 今朝、JRのある路線で遅延が発生していたようですが、その原因が猪と衝突したことによる車両不具合だったそうです……どれだけ強い衝撃だったのでしょうか。 さて、今回は前回の投稿の続きです。 前回紹介したGoogle Maps APIには、様々な種類があります。 G… Read More
指定の文字数を取得する こんにちはYです。 SEO対策をしていて、ちょっと文字が多いな、、、と感じた箇所にぶつかりました。 データもとの文章を変更せずに、先頭の~文字で切って妥協することにしました。 その時の対処方法です。 String.Substring メソッドを使用しました。 String nagaiMoji… Read More
HttpResponse.Redirect メソッド (String)とはこんにちは山田です。 エアコンと床暖のランニングコストはどっちがお得なんだろうと 最近気になっています。 季節ネタはさておき今回は、使用していたリダイレクトメソッドを 調べてみたのでその備忘録になります。 開発環境:ASP.NET 2.0 ■HttpResponse.Redirect メソッド… Read More
ファイルアップロードで苦戦したところ(4MB) こんにちわYです。 本日は、ASP.NET 2.0 のファイルアップロードで苦労したところになります。 どういうわけか、ファイルサイズが4MB超えるとエラーになってしまうというものです。 System.Web.HttpUnhandledExcep… Read More
インライン式 <%= %> と <%# %>の違いインライン式 <%= %> と <%# %>の違い こんにちわ、山田です。 ASP.NETを使っていてよくわからなかったところがあったのでまとめました。 この書き方、調べたらインライン式というらしい。 自分がよく使うものをまとめてみました。 ■埋め込みコードブロック【&l… Read More
ページをまたいだポストバックには「クロスポストバック」という方法を使用することもできます。
返信削除http://www.atmarkit.co.jp/fdotnet/dotnettips/406asppostback1/asppostback1.html
Server.Transfer()を使用する方法では、
元のページ側でのイベントライフサイクルが進んでしまい、
例えばPage_Load()でServer.Transfer()を呼ぶと
元のページのPage_Init()等のイベントも発生します。Server.Transfer()するのであれば、
この辺のライフサイクルイベントはほとんど無駄です。
ですので、単にページをまたいだポストバックをさせたい場合は「クロスポストバック」の利用を検討して下さい。