Server.Transfer方法把執行流程從當前的ASPX文件轉到同一服務器上的另一個ASPX頁面。調用Server.Transfer時,當前的ASPX頁面終止執行,執行流程轉入另一個ASPX頁面,但新的ASPX頁面仍使用前一ASPX頁面創建的應答流。
如果用Server.Transfer方法實現頁面之間的導航,浏覽器中的URL不會改變,因為重定向完全在服務器端進行,浏覽器根本不知道服務器已經執行了一次頁面變換。
Response.Redirect則是客戶端第一次請求服務器返回狀態代碼302及新URL,客戶端再次請求新URL,服務器再返回新頁面,比Server.Transfer多一次應答。
一般來說如果需要在兩個頁面間共享數據,而且數據量比較大的時候,用transfer會比較合適,在第二個頁面中可以直接使用前一頁面的數據,
eg:
TransferToPage.aspx
復制代碼 代碼如下:
if(Context.Handler is TransferFromPage)
{
TransferFromPage post=(TransferFromPage)Context.Handler;
startWeekID=Int32.Parse(post.DdlStartWeek.SelectedValue);
endWeekID=Int32.Parse(post.DdlEndWeek.SelectedValue);
}
直接引用前一頁面控件的值。
Redirect可以傳遞一些較小字符串值。
Response.Redirect( "b.aspx?id=0&name=Jeff ");