(轉)C#中Response.Redirect,Server.Transfer,Server.Execute三種跳轉方式介紹

 ・如果要讓用戶來決定何時轉換頁面以及轉到哪一個頁面,超級鏈接最適合。 
   
  ・如果要用程序來控制轉換的目標,但轉換的時機由用戶決定,使用Web服務器的HyperLink控件,動態設置其NavigateUrl屬性。 
   
  ・如果要把用戶連接到另一臺服務器上的資源,使用Response.Redirect。 
   
  ・用Response.Redirect把用戶連接到非ASPX的資源,例如HTML頁面。 
   
  ・如果要將查詢字符串作爲URL的一部分保留,使用Response.Redirect。 
   
  ・如果要將執行流程轉入同一Web服務器的另一個ASPX頁面,應當使用Server.Transfer而不是Response.Redirect,因爲Server.Transfer能夠避免不必要的網絡通信,從而獲得更好的性能和瀏覽效果。 
   
  ・如果要捕獲一個ASPX頁面的輸出結果,然後將結果插入另一個ASPX頁面的特定位置,則使用Server.Execute。 
   
  ・如果要確保HTML輸出合法,請使用Response.Redirect,不要使用Server.Transfer或Server.Execute方法。

server.execute,以爲這夥計能代替#include解決動態包含的問題,沒想到完全不是那麼回事。確切地說,這夥計只能根據條件動態包含“靜態的頁面”。因爲經過實踐,發現
他不能傳遞頁面變量給其他頁面; 
也不能引用“僱傭他的老闆”頁面所定義的變量和方法! 
光以上兩點限制,server.execute就比#include差勁多了,這決定了server.execute完全不能替代#include的“引用公用文檔”的作用。對於提高asp執行效率的戰役中,server.execute只是一個刺客,爲了殺敵,可以偶爾用用,不要指望他能改變整個戰局。 

server.transfer,我比較認可這個東西,很大程度上他代替response.redirect,而且更快。但他有幾個缺點 

不能在url裏面跟?a=1&b=2之類的參數 
只能用相對地址 
只能在站點內部使用,不能填http://www.xxx.com/aaa.html之類 
所以說呢,server.transfer也不能完全取代response.redirect重新定向的功能。 

友情合作伙伴:第一網絡!本文出自:http://w1.org.cn/web/programming/server.html
 

發佈了9 篇原創文章 · 獲贊 7 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章