HOW TO:將使用者重新導向至其他網頁
更新:2007 年 11 月
您可能想要將使用者從一個 ASP.NET Web 網頁重新導向至另一個網頁。例如,您可以執行這項步驟做為多重網頁表單的一部分。
重新導向網頁有許多方法,例如下列所示:
設定網頁張貼至其他網頁 在這種狀況下,使用者會按一下設定張貼至不同網頁的按鈕。這種情況在多重網頁表單很有用。然而,這需要使用者互動。如需詳細資訊,請參閱在 ASP.NET Web 網頁中跨網頁公佈。
動態使用瀏覽器 在這種狀況下,會將命令傳送至使用者的瀏覽器,造成瀏覽器擷取不同網頁。這可以讓您以程式設計方式重新導向至其他網頁。然而,重新導向會產生新的要求 (HTTP GET),並且遺失來源網頁的任何張貼資料。
動態使用伺服器端方法 在這種狀況下,伺服器只會將內容傳輸至其他網頁。優點是您可在網頁間共用網頁的內容資訊。缺點為使用者的瀏覽器並不知道這次傳輸,因此使用者的記錄並沒有更新。如果使用者重新整理網頁,可能會發生未預期的結果。如需在伺服器傳輸期間共用網頁內容的詳細資訊,請參閱 HOW TO:在 ASP.NET Web 網頁之間傳遞值。
使用瀏覽器將使用者重新導向至其他網頁
將 Response 物件的 BufferOutput 屬性設定為 true。
呼叫 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); }