server.transfer(asp 3.0 以上) 和 response.redirect 在以前的 asp 中就存在了,page.navigate 是 asp.net beta 1 提供的新功能,它們之間的區(qū)別在于:
1、server.transfer - 用于把處理的控制權(quán)從一個頁面轉(zhuǎn)移到另一個頁面,在轉(zhuǎn)移的過程中,沒有離開服務(wù)器,內(nèi)部控件(如:request, session 等)的保存的信息不變,因此,你能從頁面 a 跳到頁面 b 而不會丟失頁面 a 中收集的用戶提交信息。此外,在轉(zhuǎn)移的過程中,瀏覽器的 url 欄不變。
2、response.redirect - 發(fā)送一個 http 響應(yīng)到客戶端,告訴客戶端跳轉(zhuǎn)到一個新的頁面,客戶端再發(fā)送跳轉(zhuǎn)請求到服務(wù)器。使用此方法時,將無法保存所有的內(nèi)部控件數(shù)據(jù),頁面 a 跳轉(zhuǎn)到頁面 b,頁面 b 將無法訪問頁面 a 中 form 提交的數(shù)據(jù)。