asp.net服务器端跳转页面的三种方法
????它可以跳轉到任何頁面,沒有站點頁面限制(可以由baidu跳轉到google),但不能跳過登錄保護。
速度慢是其最大缺陷!
Redirect跳轉機制:首先是服務器端發送一個http請求到客戶端,通知需要跳轉到新頁面,然后客戶端再發送跳轉請求到服務器端。需要注意的是跳轉后內部空間保存的所有數據信息將會丟失,所以需要用到session。
?
??2、Server.Transfer速度快,只需要一次postback,但它必須是在同一個站點內跳轉。
Server.Transfer的重定向請求發生在服務器端,僅僅將此控件傳遞到新的網頁并且不在客戶端重新定位該網頁,所以瀏覽器的url地址仍然是原頁面的地址!另外,它能跳過登錄保護。
默認情況下,Transfer方法不會把表單數據或查詢字符串從一個頁面傳遞到另一個頁面,但是如果把該方法的第二個參數設置成true,就可以保留原先頁面的表單數據和查詢字符串。
Server.Transfer("hyj.aspx"); //服務器停止執行本頁,保存本頁的當前數據后,再使頁面轉向hyj.aspx,并將跳轉之前數據加上hyj.aspx頁面執行的結果返回給瀏覽器。
?
????3、Sever.Execute這個方法主要是用在頁面設計上,它必須是在同一個站點內跳轉,也只需要一次postback。
????這個方法是需要將一個頁面的輸出結果插入到另一個aspx頁面的時候使用,大部分是在表格中將某一個頁面類似于嵌套的方式存在于另一頁面。
Server.Execute("hyj.aspx");//服務器保存此頁的當前數據后,使頁面轉向到hyj.aspx執行,在hyj.aspx執行之后又返回本頁繼續執行,再將三者結果合并后返回給瀏覽器。
Execute方法跳轉類似于函數調用。
?
?
????如何選擇頁面重定向的方法:
????asp.net中頁面跳轉方式----Redirect、Transfer、Execute、超鏈接、HyperLink控件。
????當需要把用戶跳轉到另一臺服務器上的頁面的時候?,使用Redirect
????當需要把用戶跳轉到非aspx頁面時候,如html,使用Redirect
????需要把查詢字符串作為url一部分傳給服務器的時候,使用Redirect,因為其他兩種方法不能做到2次postback,把數據帶回服務器
????需要aspx頁面間的轉換(不涉及登錄),使用Transfer
????當需要把aspx頁面的輸出結果插入到另一個aspx頁面的時候使用?Execute。
????當需要用戶來決定什么時候跳轉頁面,就使用超鏈接。
????要用程序來控制轉換的目標,但轉換的時機由用戶決定,使用Web服務器的HyperLink控件,動態設置其NavigateUrl屬性。轉載于:https://www.cnblogs.com/perfectlife/archive/2011/12/29/2305969.html
總結
以上是生活随笔為你收集整理的asp.net服务器端跳转页面的三种方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Web service 超过了最大请求长
- 下一篇: 解决添加Com引用 生成的Interop