【轉】Server.Transfer頁面轉向和Response.Redirect頁面轉向差異

來源:互聯網
上載者:User

標籤:

/*自己總結*/

Response.Redirect可以轉向本地頁面和外鏈頁面

Server.Transfe只能轉向本地頁面

/*原文摘要*/

Response是叫瀏覽器去重新轉向到指定的網頁,而Server自然是發生在伺服器端為主了,因此會有以下區別:

1. Server.Transfer只能夠轉跳到本地虛擬目錄指定的頁面,而Response.Redirect則十分靈活;
2. Server.Transfer可以將頁面參數方便傳遞到指定頁面;
3. 使用時,Server.Transfer跳到別的頁面後,瀏覽器顯示的地址不會改變,有時反而會造成誤會,當然也有些場合需要這樣的效果;
4. Server.Transfer可以減少用戶端對伺服器的請求



Server.Transfer只能是具體的頁面,不能添加url參數。但頁面內變數可以保持傳遞。 


 

Server.Transfer跳轉頁面的狀態與Response.Redirect類似。 但是它們之間還是有一些差別的。 

首先,用Server.Transfer遷移到另一個頁面保持著服務資源。 而不是簡單的通知瀏覽器服務端換了個頁面並遷移請求。這 意味著你不需要攜帶更多的Http請求,因此可以減輕服務端的 壓力而使你的應用運行得更快。 

但是,注意:因為"Transfer"過程只能在那些在同一服務端的 網站上,你不能使用Server.Transfer使使用者跳轉到外部的網站。 這點只有Response.Redirect能做到。 

第二,Server.Transfer維持著瀏覽器原始的URL,這對於流線型的資料入口技術,雖然它有可能導致調試的時候的資料混亂 

還有,Server.Transfer方法還有二個參數的重載方法—— "preserveForm"如果你將其設定為True(預設情況是False), 使用一個狀態比如:Server.Transfer("WebForm2.aspx", True), 現存的請求字串和所有的Form裡的變數將被保持並提交到你的 目標頁。 

但是必須注意的是,這裡有一個奇怪的Bug(微軟為什麼有這樣的Bug)。當你使用兩個參數的重載方法試圖遷移form和請求字串的時候會有可能產生錯誤。 

非官方的解決辦法是將要被跳轉的畫面的enableViewStateMac的屬性設定為 True , 然後再設回 False.

【轉】Server.Transfer頁面轉向和Response.Redirect頁面轉向差異

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.