隨手記下 Asp.net 6種頁面轉向方法

 

<a>標籤

1.         <a href=”test.aspx”></a>

2.         這是最常見的一種轉向方法;

 

HyperLink控件

1.         Asp.net 服務器端控件 屬性NavigateUrl指定要跳轉到的Url地址

2.         NavigateUrl是可以在服務器端使用代碼修改,這個區別於<a>

3.         由於HyperLink本身沒有事件所以要在服務器端其它事件中設置NavigateUrl

4.         代碼示例

<Asp:HyperLink id=”hyperlink” runat=”server” NavigatoeUrl=”test.aspx”>ok</Asp:HyperLink>

 

Response.Redirect()方法

1.         過程:發送一個Http響應到客戶端,通知客戶端跳轉到一個新的頁面,然後客戶端再發送跳轉請求到服務器端。

2.         頁面跳轉之後內部控件保存的所有信息丟失,當A跳轉到BB頁面將不能訪問A頁面提交的數據信息。

3.         使用這個方法使用這個方法跳轉後瀏覽器地址欄的Url信息改變

4.         可以使用Session Cookies Application等對象進行頁面間的數據傳遞

5.         重定向操作發生在客戶端,總共涉及到兩次與Web服務器的通信:一次是對原始頁面的請求,另一次是重定向新頁面的請求


Server.Transfer()
方法

1.         實現頁面跳轉的同時將頁面的控制權進行移交

2.         頁面跳轉過程中Request Session等保存的信息不變,跳轉之後可以使用上一個頁面提交的數據

3.         跳轉之後瀏覽器地址欄的Url不變

4.         這種方法的重定向請求是在服務器端的進行的,瀏覽器不知道頁面已經發生了一次跳轉

 

Server.Execute()方法

1.         該方法允許當前頁面執行同一個Web服務器上的另一個頁面

2.         頁面執行完畢之後重新回到原始頁面發出Server.Execute()的位置。

3.         這種方式類似針對頁面的一次函數調用 被請求的頁面可以使用原始頁面的表單數據和查詢字符串集合

4.         被調用頁面的Page指令的EnableViewStateMac屬性設置爲False

 

話題相關:

1.         爲了確保HTML輸出的合法性 最好使用Response.Redirect方法;因爲Server.Execute 或者Server.Transfer方法返回給客戶端的頁面包含多個<Html><body>標記,不是合法的HTML頁面,在非IE瀏覽器中可能會發生錯誤。

2.         由於Server.Transfer在服務器端執行重定向,所以避免了不必要的網絡通信,從而獲得了更好的性能和瀏覽效果

還有一個小方法
Response.write("<script language=javascript>history.go(-2);</script>)
Response.write("<script language=javascript>history.back();</script>)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章