次の方法で共有


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 ページへの転送は有効ではありません。

TransferEnd を呼び出し、これは完了時に ThreadAbortException 例外を生成します。

preserveFormtrue に設定し、 <pages> 要素 構成要素の enableViewStateMac 属性が true の場合、 Transfer が実行されたときに ASP.NET は例外を生成します。これは、 Transfer を呼び出したページからのビューステートが、転送先のページで有効ではないためです。呼び出し元ページで保持されるフォーム フィールドには、隠しフォーム フィールドの _VIEWSTATE があります。これはページのビューステートを保持します。 enableViewStateMactrue の場合、ページがクライアントからポストバックされたときに、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 オーバーロードの一覧