ASP.NET頁面跳轉的三種方法

iDotNetSpace發表於2009-07-29

Response.Redirect()方法 
1.         過程:傳送一個Http響應到客戶端,通知客戶端跳轉到一個新的頁面,然後客戶端再傳送跳轉請求到伺服器端。 
2.         頁面跳轉之後內部控制元件儲存的所有資訊丟失,當A跳轉到B,B頁面將不能訪問A頁面提交的資料資訊。 
3.         使用這個方法使用這個方法跳轉後瀏覽器位址列的Url資訊改變 
4.         可以使用Session Cookies Application等物件進行頁面間的資料傳遞 
5.         重定向操作發生在客戶端,總共涉及到兩次與Web伺服器的通訊:一次是對原始頁面的請求,另一次是重定向新頁面的請求

Server.Transfer()方法 
1.         實現頁面跳轉的同時將頁面的控制權進行移交 
2.         頁面跳轉過程中Request Session等儲存的資訊不變,跳轉之後可以使用上一個頁面提交的資料 
3.         跳轉之後瀏覽器位址列的Url不變 
4.         這種方法的重定向請求是在伺服器端的進行的,瀏覽器不知道頁面已經發生了一次跳轉

Server.Execute()方法 
1.         該方法允許當前頁面執行同一個Web伺服器上的另一個頁面 
2.         頁面執行完畢之後重新回到原始頁面發出Server.Execute()的位置。 
3.         這種方式類似針對頁面的一次函式呼叫 被請求的頁面可以使用原始頁面的表單資料和查詢字串集合 
4.         被呼叫頁面的Page指令的EnableViewStateMac屬性設定為False

JavaScript 
        string str = "history.go(-2);";
        Response.Write(str);

話題相關: 
1.         為了確保HTML輸出的合法性 最好使用Response.Redirect方法;因為Server.Execute 或者Server.Transfer方法返回給客戶端的頁面包含多個

標記,不是合法的HTML頁面,在非IE瀏覽器中可能會發生錯誤。 
2.         由於Server.Transfer在伺服器端執行重定向,所以避免了不必要的網路通訊,從而獲得了更好的效能和瀏覽效果 
文章出處:http://www.diybl.com/course/4_webprogram/asp.net/asp_netshl/2008513/115892.html

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-610726/,如需轉載,請註明出處,否則將追究法律責任。

相關文章