asp.net 頁面轉向方法其實就是兩種
服務器端轉向和客戶端轉向
客戶端轉向實質上是指由瀏覽器直接向服務器端從新發送一個請求。
而服務器端轉向是指服務器內部進行頁面的跳轉。
服務器端轉向和客戶端轉向有如下幾個區別
1.客戶端轉向轉向之後ie瀏覽器的地址欄會發生變化,可是服務器端轉向之後,ie瀏覽器的地址欄不變,ie瀏覽器並不知道頁面已經跳轉。
2.客戶端轉向先後兩個頁面是不一樣的請求,可是服務器端轉向確是共用一個請求的。
<a>標籤 hyperlink控件 response.redirect()方法以及response.write("<script language=javascript>history.go(-2);</script>)
都屬於客戶端轉向
server.transfer()方法和server.execute()方法都屬於服務器端轉向
[一]、<a>標籤javascript
1. <a href=」test.aspx」></a>html
2. 這是最多見的一種轉向方法;
java
[二]、hyperlink控件web
1. asp.net 服務器端控件 屬性navigateurl指定要跳轉到的url地址瀏覽器
2. navigateurl是能夠在服務器端使用代碼修改,這個區別於<a>服務器
3. 因爲hyperlink自己沒有事件因此要在服務器端其它事件中設置navigateurlcookie
4. 代碼示例網絡
<asp:hyperlink id=」hyperlink」 runat=」server」 navigatoeurl=」test.aspx」>ok</asp:hyperlink>
session
[三]、response.redirect()方法app
1. 過程:發送一個http響應到客戶端,通知客戶端跳轉到一個新的頁面,而後客戶端再發送跳轉請求到服務器端。
2. 頁面跳轉以後內部控件保存的全部信息丟失,當a跳轉到b,b頁面將不能訪問a頁面提交的數據信息。
3. 使用這個方法使用這個方法跳轉後瀏覽器地址欄的url信息改變
4. 可使用session cookies application等對象進行頁面間的數據傳遞
5. 重定向操做發生在客戶端,總共涉及到兩次與web服務器的通訊:一次是對原始頁面的請求
[四]、
response.write("<script language=javascript>history.go(-2);</script>)
response.write("<script language=javascript>history.back();</script>)
[五]、server.transfer()方法
1. 實現頁面跳轉的同時將頁面的控制權進行移交
2. 頁面跳轉過程當中request session等保存的信息不變,跳轉以後可使用上一個頁面提交的數據
3. 跳轉以後瀏覽器地址欄的url不變
4. 這種方法的重定向請求是在服務器端的進行的,瀏覽器不知道頁面已經發生了一次跳轉
[六]、server.execute()方法
1. 該方法容許當前頁面執行同一個web服務器上的另外一個頁面
2. 頁面執行完畢以後從新回到原始頁面發出server.execute()的位置。
3. 這種方式相似針對頁面的一次函數調用 被請求的頁面可使用原始頁面的表單數據和查詢字符串集合
4. 被調用頁面的page指令的enableviewstatemac屬性設置爲false
注:
1。server.execute和server.transfer視乎你怎麼用,一般調用以前都應該response.clear()清除以前的輸出,調用以後response.flush()和response.end()結束處理。.
2。hyperlink對比a的最大好處是支持resolveurl。a其實也能夠runat="server",雖然感受有點怪,但至少能夠在服務器端對它進行通常控件都
能進行的賦值和數據綁定操做,然而resolveurl則是它佈局別的,若是要用"~/default.aspx"這樣的路徑則最好用hyperlink。
話題相關:
1. 爲了確保html輸出的合法性 最好使用response.redirect方法;由於server.execute或者server.transfer方法返回給客戶端的頁面包含多個<html><body>標記,不是合法的html頁面,在非ie瀏覽器中可能會發生錯誤。
2. 因爲server.transfer在服務器端執行重定向,因此避免了沒必要要的網絡通訊,從而得到了更好的性能和瀏覽效果
搜索此文相關文章:Asp 6種頁面轉向方法
此文連接:http://www.makaidong.com/%E5%8D%9A%E5%AE%A2%E5%9B%AD%E6%8E%92%E8%A1%8C%E6%A6%9C/1917.shtml
轉載請註明出處:Asp 6種頁面轉向方法 - 博客園