英語で読む

次の方法で共有


HttpResponse.Redirect メソッド

定義

クライアントを新しい URL にリダイレクトします。

オーバーロード

Redirect(String)

新しい URL に要求をリダイレクトして、新しい URL を指定します。

Redirect(String, Boolean)

クライアントを新しい URL にリダイレクトします。 新しい URL を指定し、さらに現在のページの実行を終了するかどうかを指定します。

Redirect(String)

新しい URL に要求をリダイレクトして、新しい URL を指定します。

C#
public void Redirect (string url);

パラメーター

url
String

対象となる位置。 アプリケーションの相対仮想パスを指定できます。

例外

HTTP ヘッダーが送信された後にリダイレクトしようとしました。

次の例では、別の Web サイトへの無条件リダイレクトを強制します。

C#
Response.Redirect("http://www.microsoft.com/gohere/look.htm");

注釈

の呼び出しRedirectは、2 番目のパラメーターを に設定して を呼び出すことRedirecttrueと同じです。

Redirect が呼び出 End され、完了時に例外が ThreadAbortException スローされます。 この例外は、Web アプリケーションのパフォーマンスに悪影響を与えます。 したがって、このオーバーロードの代わりに、 オーバーロードを使用し、 パラメーターに HttpResponse.Redirect(String, Boolean)endResponsefalseしてから、 メソッドをCompleteRequest呼び出することをお勧めします。 詳細については、End メソッドを参照してください。

注意

モバイル ページの場合のみ、アプリケーションが Cookie レス セッションに依存している場合、または Cookie レス セッションを必要とするモバイル デバイスから要求を受信する可能性がある場合は、パスにチルダ (~) を使用すると、新しいセッションが作成され、セッション データが失われる可能性があります。 "~/path" などのパスを持つモバイル コントロールのプロパティを設定するには、プロパティに割り当てる前に"~/path" を使用して ResolveUrl パスを解決します。

ASP.NET は、302 HTTP 状態コードを返すことによってリダイレクトを実行します。 別のページに制御を転送する別の方法は、 Transfer メソッドです。 メソッドは Transfer 通常、クライアントへのラウンド トリップを引き起こさないため、より効率的です。 詳細については、「 方法: ユーザーを別のページにリダイレクトする」を参照してください。

適用対象

.NET Framework 4.8.1 およびその他のバージョン
製品 バージョン
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

Redirect(String, Boolean)

クライアントを新しい URL にリダイレクトします。 新しい URL を指定し、さらに現在のページの実行を終了するかどうかを指定します。

C#
public void Redirect (string url, bool endResponse);

パラメーター

url
String

リダイレクト先の場所。

endResponse
Boolean

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

例外

urlnullです。

url に改行文字が含まれています。

HTTP ヘッダーが送信された後にリダイレクトしようとしました。

ページ要求がコールバックの結果となっています。

次の例では、 プロパティをIsClientConnected使用して、ページを要求しているクライアントがサーバーに接続されたままであるかどうかをチェックします。 が true の場合 IsClientConnected 、コードは メソッドを Redirect 呼び出し、クライアントは別のページを表示します。 が false の場合 IsClientConnected 、コードは メソッドを End 呼び出し、すべてのページ処理が終了します。

ASP.NET (C#)
<%@ 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>

注釈

絶対 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 Framework 4.8.1 およびその他のバージョン
製品 バージョン
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1