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は、2 番目のパラメーターを に設定して を呼び出すことRedirecttrue
と同じです。
Redirect が呼び出 End され、完了時に例外が ThreadAbortException スローされます。 この例外は、Web アプリケーションのパフォーマンスに悪影響を与えます。 したがって、このオーバーロードの代わりに、 オーバーロードを使用し、 パラメーターに HttpResponse.Redirect(String, Boolean) をendResponse
渡false
してから、 メソッドを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呼び出します。 パラメーターに を指定true
した場合、このメソッドは元の要求の End メソッドを呼び出します。このメソッドは、完了時に例外をThreadAbortExceptionスローendResponse
します。 この例外は Web アプリケーションのパフォーマンスに悪影響を及ぼすため、 パラメーターの endResponse
を渡false
すことをお勧めします。 詳細については、End メソッドを参照してください。
注意
モバイル ページの場合、アプリケーションが Cookie レス セッションに依存している場合、または Cookie レス セッションを必要とするモバイル デバイスから要求を受信する可能性がある場合は、パスにチルダ (~) を使用すると、新しいセッションが作成され、セッション データが失われる可能性があります。 "~/path" などのパスを持つモバイル コントロールのプロパティを設定するには、プロパティに割り当てる前に"~/path" を使用して ResolveUrl パスを解決します。
ASP.NET は、302 HTTP 状態コードを返すことによってリダイレクトを実行します。 別のページに制御を転送する別の方法は、 Transfer メソッドです。 メソッドは Transfer 通常、クライアントへのラウンド トリップを引き起こさないため、より効率的です。 詳細については、「 方法: ユーザーを別のページにリダイレクトする」を参照してください。
適用対象
.NET