2

どちらが良いですか、Server.TransferそれともResponse.Redirect?これについての説明を探しています。

4

2 に答える 2

9

それらにはさまざまな機能があります。より良いの定義は、何をしようとしているのかによって異なります。

Response.Redirect は、どこにでもある新しいアドレスにアクセスするようにクライアントに指示します。

Server.Transfer は、要求を (オプションでクエリ文字列を保持して) 同じサーバー上の別のページに転送します。

新しいページが同じサーバー上にあることを前提として、条件が不必要なオーバーヘッドを削減している場合は、Server.Transfer が必要な方法です。

于 2011-03-01T07:18:23.513 に答える
-1

それはあなたの要求に依存します。 page1.aspxにいて、page2.aspx Response.Redirectシナリオ

に移動したい場合 page1.aspxがResponse.Redirect( "page2.aspx"、false);を呼び出したとします。これにより、302リダイレクトヘッダーがクライアントブラウザに送信され、要求された(page1.aspx)がpage2.aspxに移動したことを通知し、Webアプリケーションが終了します。次に、クライアントブラウザはpage2.aspxのリクエストをウェブサーバーに送信します。IISは、asp_wp.exeに要求を処理するように指示します。asp_wp.exe(認証を確認し、新しい要求が着信したときに実行する必要のある他のすべてのセットアップを実行した後)は、page2.aspxの適切なクラスをインスタンス化し、要求を処理し、結果をブラウザーに送信して、シャットダウンします。この場合、サーバーへのラウンドトリップがあります。 Server.Transferシナリオ





page1.aspxはServer.Transfer( "page2.aspx");を呼び出します。ASP.NETは、page2.aspxの適切なクラスをインスタンス化し、要求を処理し、結果をブラウザーに送信して、シャットダウンします。

Server.Transferは、クライアントとサーバーの負荷を軽減することに注意してください。

Server.Transferは、状態を維持するため、コーディングも簡単です。情報はページ間でHTTPコンテキストオブジェクトを介して渡すことができるため、クエリ文字列で情報を渡したり、データベースから情報を再読み込みしたりする必要がありません。

Server.Transferのいくつかの制限
それは同じドメインページ(同じサーバー上)でのみ機能します
それはあなたが転送するページの認証をバイパスします


今あなたはあなたの要件に応じてどちらが良いかを自分で決めることができます。

于 2011-03-01T07:05:19.310 に答える