Hopes

          Start Here..

           

          Server.Transfer VS Response.Redirect

          如果你讀過很多行業雜志和 ASP.NET 示例,你會發現,大多數人使用 Response.Redirect 將用戶引導到另一個頁面,而另一些人好像偏愛于神秘的 Server.Transfer,那么,這二者有什么區別?

          Response.Redirect 簡單地發送一條消息到瀏覽器,告訴瀏覽器定位到另一個頁面。你可以使用下面的代碼將用戶引導到另一個頁面:
          Response.Redirect("WebForm2.aspx")
          或者
          Response.Redirect(
          "http://www.karlmoore.com/")

          Server.Transfer 也是通過一條語句將用戶引導到另一頁面,比如:Server.Transfer(
          "WebForm2.aspx")。不過,這條語句有一系列獨特的優缺點。

          首先,通過 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,你仍然可以用 Request.Form(
          "TextBox1") 來取得文本框的值。

          這種技術對向導式的多頁面輸入很有用,不過這里有一個你必須注意的問題是,當你使用 preserveForm 參數時,ASP.NET 有一個 bug,通常情況下,當試圖傳遞 form 或 query 
          string 值時會發生錯誤。請參見:http://support.microsoft.com/default.aspx?id=kb;en-us;Q316920

          非官方的解決辦法是在你要傳遞的目的頁面中設置 enableViewStateMac 屬性為 True,然后再將其設置回 False。這說明你需要使用 enableViewStateMac 的 False 值才能解決這個問題。

          總結:Response.Redirect 簡單地告訴瀏覽器訪問另一個頁面。Server.Transfer 有利于減少服務器請求,保持地址欄 URL 不變,允許你將 query 
          string 和 form 變量傳遞到另一個頁面(有一點小小的缺陷)。

          重要提示:不要混淆了 Server.Transfer 和 Server.Execute,Server.Execute 執行一個頁面,并返回結果,在過去 Server.Execute 很有用,不過在 ASP.NET 里,它被 fresher 方法所代替,所以忽略 Server.Execute。

          關于作者
          卡爾·穆爾(MCSD, MVP)是英國約克郡一名經驗豐富的作家。他編寫了一系列技術書籍,包括新出版的  Ultimate VB .NET and ASP.NET Code Book,另外在工業聯合會和BBC電臺長期擔任要職。穆爾同樣擁有自己的公司,白崖計算有限公司,點擊訪問其官方主頁http:
          //www.karlmoore.com/.

          posted on 2012-05-10 21:04 ** 閱讀(115) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          統計

          公告

          你好!

          常用鏈接

          留言簿(2)

          隨筆檔案

          文章分類

          文章檔案

          新聞檔案

          相冊

          收藏夾

          C#學習

          友情鏈接

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 壤塘县| 中阳县| 布拖县| 时尚| 濮阳县| 常宁市| 长兴县| 雷山县| 三门县| 聂拉木县| 井冈山市| 康平县| 临漳县| 许昌市| 米脂县| 阿克苏市| 建湖县| 新蔡县| 米林县| 乌审旗| 威远县| 博乐市| 攀枝花市| 竹溪县| 尼玛县| 衡南县| 保定市| 三台县| 维西| 河间市| 藁城市| 沧州市| 江津市| 平度市| 同仁县| 龙南县| 壶关县| 泉州市| 涡阳县| 大关县| 红原县|