共用方式為


HOW TO:將使用者重新導向至其他網頁

更新:2007 年 11 月

您可能想要將使用者從一個 ASP.NET Web 網頁重新導向至另一個網頁。例如,您可以執行這項步驟做為多重網頁表單的一部分。

重新導向網頁有許多方法,例如下列所示:

  • 設定網頁張貼至其他網頁   在這種狀況下,使用者會按一下設定張貼至不同網頁的按鈕。這種情況在多重網頁表單很有用。然而,這需要使用者互動。如需詳細資訊,請參閱在 ASP.NET Web 網頁中跨網頁公佈

  • 動態使用瀏覽器   在這種狀況下,會將命令傳送至使用者的瀏覽器,造成瀏覽器擷取不同網頁。這可以讓您以程式設計方式重新導向至其他網頁。然而,重新導向會產生新的要求 (HTTP GET),並且遺失來源網頁的任何張貼資料。

動態使用伺服器端方法   在這種狀況下,伺服器只會將內容傳輸至其他網頁。優點是您可在網頁間共用網頁的內容資訊。缺點為使用者的瀏覽器並不知道這次傳輸,因此使用者的記錄並沒有更新。如果使用者重新整理網頁,可能會發生未預期的結果。如需在伺服器傳輸期間共用網頁內容的詳細資訊,請參閱 HOW TO:在 ASP.NET Web 網頁之間傳遞值

使用瀏覽器將使用者重新導向至其他網頁

  1. 將 Response 物件的 BufferOutput 屬性設定為 true。

  2. 呼叫 Response 物件的 Redirect 方法,然後將想要重新導向使用者的網頁 URL 傳遞給它。

    下列程式碼範例,示範了如何根據區域變數 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);
    }
    

請參閱

工作

HOW TO:在 ASP.NET Web 網頁之間傳遞值