HttpServerUtility.Transfer メソッド (String, Boolean)
現在のページの実行を終了し、そのページへの指定した URL パスを使用して新しいページの実行を開始します。 QueryString コレクションと Form コレクションを削除するかどうかを指定します。
Overloads Public Sub Transfer( _
ByVal path As String, _ ByVal preserveForm As Boolean _)
[C#]
public void Transfer(stringpath,boolpreserveForm);
[C++]
public: void Transfer(String* path,boolpreserveForm);
[JScript]
public function Transfer(
path : String,preserveForm : Boolean);
パラメータ
- path
サーバー上にある、実行する新しいページの URL パス。 - preserveForm
true の場合、 QueryString コレクションと Form コレクションは保持されます。 false の場合、これらのコレクションは削除されます。既定値は false です。
例外
例外の種類 | 条件 |
---|---|
HttpException | リソースが見つかりません。 |
解説
転送先のページは別の .aspx ページにしてください。たとえば、.asp ページや .asmx ページへの転送は有効ではありません。
Transfer は End を呼び出し、これは完了時に ThreadAbortException 例外を生成します。
preserveForm を true に設定し、 <pages> 要素 構成要素の enableViewStateMac 属性が true の場合、 Transfer が実行されたときに ASP.NET は例外を生成します。これは、 Transfer を呼び出したページからのビューステートが、転送先のページで有効ではないためです。呼び出し元ページで保持されるフォーム フィールドには、隠しフォーム フィールドの _VIEWSTATE があります。これはページのビューステートを保持します。 enableViewStateMac が true の場合、ページがクライアントからポストバックされたときに、ASP.NET は転送先ページのビューステートでメッセージ認証チェック (MAC) を実行しますが、このチェックは失敗します。セキュリティ上の理由から、 enableViewStateMac 属性は常に true に設定する必要がありますが、フォームのデータを転送するには他にもメソッドがあります。推奨されるソリューションも含めて、この詳細については、https://support.microsoft.com にアクセスして、Microsoft サポート技術情報の JP316920 (「Server.Transfer を使用するとエラー メッセージ "ViewState は無効です" が表示される」) を参照してください。
使用例
同じディレクトリ内の新しいページを現在のページとして実行する例を次に示します。
Server.Transfer("Logon.aspx")
[C#]
Server.Transfer("Logon.aspx");
[C++]
Server->Transfer(S"Logon.aspx");
[JScript]
Server.Transfer("Logon.aspx")
必要条件
プラットフォーム: Windows 2000, Windows XP Professional, Windows Server 2003 ファミリ
参照
HttpServerUtility クラス | HttpServerUtility メンバ | System.Web 名前空間 | HttpServerUtility.Transfer オーバーロードの一覧