HttpResponse.Redirect メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
クライアントを新しい URL にリダイレクトします。
オーバーロード
Redirect(String) |
新しい URL に要求をリダイレクトして、新しい URL を指定します。 |
Redirect(String, Boolean) |
クライアントを新しい URL にリダイレクトします。 新しい URL を指定し、さらに現在のページの実行を終了するかどうかを指定します。 |
Redirect(String)
新しい URL に要求をリダイレクトして、新しい URL を指定します。
public:
void Redirect(System::String ^ url);
public void Redirect (string url);
member this.Redirect : string -> unit
Public Sub Redirect (url As String)
パラメーター
- url
- String
対象となる位置。 アプリケーションの相対仮想パスを指定できます。
例外
HTTP ヘッダーが送信された後にリダイレクトしようとしました。
例
次の例では、別の Web サイトへの無条件リダイレクトを強制します。
Response.Redirect("http://www.microsoft.com/gohere/look.htm");
Response.Redirect("http://www.microsoft.com/gohere/look.htm")
注釈
呼び出し Redirect は、 Redirect 2 番目のパラメーター true
を .
Redirect完了時に例外をThreadAbortExceptionスローする呼び出しEnd。 この例外は、Web アプリケーションのパフォーマンスに悪影響を与えます。 したがって、このオーバーロードの代わりに、オーバーロードを使用してパラメーターをHttpResponse.Redirect(String, Boolean)渡false
し、メソッドをendResponse
CompleteRequest呼び出することをお勧めします。 詳細については、End メソッドを参照してください。
注意
モバイル ページの場合のみ、アプリケーションが Cookie レス セッションに依存している場合、または Cookie レス セッションを必要とするモバイル デバイスから要求を受信する可能性がある場合は、パスでチルダ (~) を使用すると、新しいセッションが作成され、セッション データが失われる可能性があります。 "~/path" などのパスを持つモバイル コントロールのプロパティを設定するには、プロパティに割り当てる前に "/path" を~使用してResolveUrlパスを解決します。
ASP.NET は、302 HTTP 状態コードを返すことによってリダイレクトを実行します。 別のページにコントロールを転送する別の Transfer 方法は、メソッドです。 このメソッドは Transfer 通常、クライアントへのラウンド トリップを引き起こさないため、より効率的です。 詳細については、「 方法: ユーザーを別のページにリダイレクトする」を参照してください。
適用対象
Redirect(String, Boolean)
クライアントを新しい URL にリダイレクトします。 新しい URL を指定し、さらに現在のページの実行を終了するかどうかを指定します。
public:
void Redirect(System::String ^ url, bool endResponse);
public void Redirect (string url, bool endResponse);
member this.Redirect : string * bool -> unit
Public Sub Redirect (url As String, endResponse As Boolean)
パラメーター
- url
- String
リダイレクト先の場所。
- endResponse
- Boolean
現在のページの実行を終了するかどうかを示します。
例外
url
が null
です。
url
に改行文字が含まれています。
HTTP ヘッダーが送信された後にリダイレクトしようとしました。
ページ要求がコールバックの結果となっています。
例
次の例では、プロパティを IsClientConnected 使用して、ページを要求しているクライアントがサーバーに接続されたままであるかどうかを確認します。 true の場合 IsClientConnected 、コードはメソッドを Redirect 呼び出し、クライアントは別のページを表示します。 false の場合 IsClientConnected 、コードはメソッドを End 呼び出し、すべてのページ処理が終了します。
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
private void Page_Load(object sender, EventArgs e)
{
// Check whether the browser remains
// connected to the server.
if (Response.IsClientConnected)
{
// If still connected, redirect
// to another page.
Response.Redirect("Page2CS.aspx", false);
}
else
{
// If the browser is not connected
// stop all response processing.
Response.End();
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
</form>
</body>
</html>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Private Sub Page_Load(sender As Object, e As EventArgs)
' Check whether the browser remains
' connected to the server.
If (Response.IsClientConnected) Then
' If still connected, redirect
' to another page.
Response.Redirect("Page2VB.aspx", false)
Else
' If the browser is not connected
' stop all response processing.
Response.End()
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
</form>
</body>
</html>
注釈
絶対 URL (たとえば) http://www.contoso.com/default.aspx
または相対 URL (Default.aspx など) をターゲットの場所に指定できますが、一部のブラウザーでは相対 URL が拒否される場合があります。
ページ ハンドラーでこのメソッドを使用して 1 つのページの要求を終了し、別のページの新しい要求を開始する場合は、そのメソッドをfalse
設定endResponse
して呼び出CompleteRequestします。 パラメーターにendResponse
指定true
した場合、このメソッドは元の要求のEndメソッドを呼び出します。このメソッドは、完了時に例外をThreadAbortExceptionスローします。 この例外は、Web アプリケーションのパフォーマンスに悪影響を及ぼすため、パラメーターをendResponse
渡すことをfalse
お勧めします。 詳細については、End メソッドを参照してください。
注意
モバイル ページの場合、アプリケーションが Cookie レス セッションに依存している場合、または Cookie レス セッションを必要とするモバイル デバイスから要求を受信する可能性がある場合は、パスでチルダ (~) を使用すると、新しいセッションが作成され、セッション データが失われる可能性があります。 "~/path" などのパスを持つモバイル コントロールのプロパティを設定するには、プロパティに割り当てる前に "/path" を~使用してResolveUrlパスを解決します。
ASP.NET は、302 HTTP 状態コードを返すことによってリダイレクトを実行します。 別のページにコントロールを転送する別の Transfer 方法は、メソッドです。 このメソッドは Transfer 通常、クライアントへのラウンド トリップを引き起こさないため、より効率的です。 詳細については、「 方法: ユーザーを別のページにリダイレクトする」を参照してください。