HttpResponse.Redirect メソッド

定義

クライアントを新しい 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し、メソッドをendResponseCompleteRequest呼び出することをお勧めします。 詳細については、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

現在のページの実行を終了するかどうかを示します。

例外

urlnullです。

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 通常、クライアントへのラウンド トリップを引き起こさないため、より効率的です。 詳細については、「 方法: ユーザーを別のページにリダイレクトする」を参照してください。

適用対象