次の方法で共有


方法 : 他のページにユーザーをリダイレクトする

更新 : 2007 年 11 月

ユーザーを 1 つの ASP.NET Web ページから他の Web ページにリダイレクトすることが必要になる場合があります。これは、マルチページ フォームなどで必要になります。

ページをリダイレクトするには、次のような方法があります。

  • 他のページにポストするようにページを構成する   この場合は、ユーザーは他のページにポストするように構成されたボタンをクリックします。これは、マルチページ フォームで便利です。ただし、これにはユーザーとのやり取りが必要です。詳細については、「ASP.NET Web ページにおけるページ間ポスティング」を参照してください。

  • ブラウザを動的に使用する   この場合は、ユーザーのブラウザに別のページを取得するコマンドを送信します。この方法では、プログラムによって他のページにリダイレクトできます。ただし、リダイレクトによって新しい要求 (HTTP GET) が生成されるため、ソース ページからポストされたデータは失われます。

サーバー側メソッドを動的に使用する   この場合、サーバーは他のページにコンテキストを転送するだけです。この方法の利点として、ページ コンテキスト情報をページ間で共有できます。欠点は、ユーザーのブラウザが転送について認識しないため、ブラウザの履歴が更新されません。ユーザーがページを更新した場合は、予測できない結果になります。サーバー転送におけるページ コンテキストの共有の詳細については、「方法 : ASP.NET Web ページ間で値をやり取りする」を参照してください。

ブラウザを使用してユーザーを他のページにリダイレクトするには

  1. Response オブジェクトの BufferOutput プロパティを true に設定します。

  2. ユーザーをリダイレクトするページの URL を渡して、Response オブジェクトの Redirect メソッドを呼び出します。

    他の場所で設定されている UserLanguage ローカル変数の内容に応じてリダイレクトする方法のコード例を次に示します。

    Response.BufferOutput = True
    If UserLanguage = "English" Then
        Response.Redirect("https://www.microsoft.com/gohere/look.htm")
    ElseIf UserLanguage = "Deutsch" Then
        Response.Redirect("https://www.microsoft.com/gohere/look_deu.htm")
    ElseIf UserLanguage = "Español" Then
        Response.Redirect("https://www.microsoft.com/gohere/look_esp.htm")
    End If
    
    Response.BufferOutput = true;
    if (UserLanguage == "English")
    {
        Response.Redirect("https://www.microsoft.com/gohere/look.htm");
    }
    else if (UserLanguage == "Deutsch")
    {
        Response.Redirect("https://www.microsoft.com/gohere/look_deu.htm");
    }
    else if (UserLanguage == "Español")
    {
        Response.Redirect("https://www.microsoft.com/gohere/look_esp.htm");
    }
    

サーバー側メソッドを使用してユーザーを他のページにリダイレクトするには

  • ユーザーをリダイレクトするページの名前を渡して、Transfer メソッドを呼び出します。

    他のページにリダイレクトする方法のコード例を次に示します。

    Protected Sub Button1_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles Button1.Click
            Server.Transfer("Page2.aspx", True)
    End Sub
    
    protected void Button1_Click(object sender, System.EventArgs e)
    {
       Server.Transfer("Page2.aspx", true);
    }
    

参照

処理手順

方法 : ASP.NET Web ページ間で値をやり取りする