Response.Redirect、 Server.Transfer、Server.Execute三者区别
生活随笔
收集整理的這篇文章主要介紹了
Response.Redirect、 Server.Transfer、Server.Execute三者区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
(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,如需轉載請自行聯系原作者
其次,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,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的Response.Redirect、 Server.Transfer、Server.Execute三者区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java EE官方文档汇总
- 下一篇: 网络工程师必备知识:苹果MAC系统下使用