・如果要讓用戶來決定何時轉換頁面以及轉到哪一個頁面,超級鏈接最適合。
・如果要用程序來控制轉換的目標,但轉換的時機由用戶決定,使用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