在使用ASP.Net時進行頁面重定向的3種方法。
首先 Response.Redirect("a.aspx"),在保存此頁的數據後,服務器將頁面直接轉向到a.ASPx。 此方法有個缺陷,就是轉向後會丟失此頁所有的Request的參數,並且此方法是需要ClIEnt發起一個請求。
在IIS 5.0 中引入了一個新的函數 Server.Transfer("a.ASPx"),它很好地解決了轉向後丟失此頁Request參數的問題。並且由於它是從server端直接向下一頁發起請求,所以不需要clIEnt再次發送請求。它與Response.Redirect的區別在於:Response.Redirect可以轉向任何一個頁面,而Server.Transfer只能轉向同目錄或子目錄的網頁;Response.Redirect轉向時地址會變成跳轉後的頁面地址,而Server.Transfer轉向時原地址不變,並且傳遞的參數值也被隱藏。
另一個方法是Server.Execute(a.aspx),它和Server.Transfer功能類似。主要的區別在於,server.execute在轉向a.ASPx執行完成後,還會返回原來的頁面繼續處理。
(1)Server.Transfer方法:
Server.Transfer("m2.ASPx");//頁面轉向(服務器上執行).
服務器停止解析本頁,保存此頁轉向前的數據後,再使頁面轉向到m2.ASPx,
並將轉向前數據加上m2.ASPx頁結果返回給浏覽器.
(2)Server.Execute方法:
Server.Execute("m2.ASPx");
服務器保存此頁轉向前的數據後,使頁面轉向到m2.ASPx執行,
再返回本頁繼續執行.再將三者結果合並後返回給浏覽器.