(1)Response.Redirect簡單地發送一條消息到浏覽器,告訴浏覽器定位到另一個頁面。client->server->client->server->client
(2)Server.Transfer也是将使用者引導到另外一個頁面,并傳回用戶端。
client->server->server->client
(3)Server.Execute執行一個頁面,并傳回結果。在asp.net中被Transfer代替
使用Server.Transfer優點:
首先,通過 Server.Transfer 引導到另一頁面保留伺服器資源,通過更改伺服器端"焦點"和傳輸請求來代替告訴浏覽器重定向,這就意味着你不會占用較多的 HTTP 請求,是以這可以減輕伺服器的壓力,使你的伺服器運作更快。不過, "transfer" 隻能在同一伺服器端的同一站點間運作,是以你不能用 Server.Transfer 将使用者重定向到另一伺服器上的站點。要重定向到伺服器以外的站點,隻有 Response.Redirect 能辦到。
其次,Server.Transfer 保留浏覽器端的 URL 位址。這對流線型的資料輸入很有幫助,不過這也增加了調試的複雜度。
最後,Server.Transfer 方法還有另一個參數——"preserveForm"。假如你設定這個參數為 True,比如:Server.Transfer("WebForm2.aspx", True), 那麼 query string 和任何 form 變量都會同時傳遞到你定位的頁面。
例:WebForm1.aspx 有一個文本框名為 TextBox1,你利用 preserveForm 為 True 傳遞到 WebForm2.aspx,那麼在WebForm2.aspx頁面可以用 Request.Form("TextBox1") 來取得文本框的值。
這種技術對向導式的多頁面輸入很有用,不過這裡有一個你必須注重的問題是,當你使用 preserveForm 參數時,ASP.NET 有一個 bug,通常情況下,當試圖傳遞 form 或 query string 值時會發生錯誤。
非官方的解決辦法是在傳遞的目的頁面中設定 EnableViewStateMac屬性設定為false。
本文轉自 韬光星夜 51CTO部落格,原文連結:http://blog.51cto.com/xfqxj/477101,如需轉載請自行聯系原作者