Asp.net 5種頁面轉向方法
更新時間:2009年02月25日 23:00:40 作者:
頁面轉向也是有技巧的,下面的是asp.net下的幾種轉向方法。
標簽
1.<a href=”test.aspx”></a>
2.這是最常見的一種轉向方法;
HyperLink控件
1.Asp.net 服務器端控件 屬性NavigateUrl指定要跳轉到的Url地址
2.NavigateUrl是可以在服務器端使用代碼修改,這個區(qū)別于<a>
3.由于HyperLink本身沒有事件所以要在服務器端其它事件中設置NavigateUrl
4.代碼示例
<Asp:HyperLink id=”hyperlink” runat=”server” NavigatoeUrl=”test.aspx”>ok</Asp:HyperLink>
Response.Redirect()方法
1.過程:發(fā)送一個Http響應到客戶端,通知客戶端跳轉到一個新的頁面,然后客戶端再發(fā)送跳轉請求到服務器端。
2.頁面跳轉之后內部控件保存的所有信息丟失,當A跳轉到B,B頁面將不能訪問A頁面提交的數(shù)據(jù)信息。
3.使用這個方法使用這個方法跳轉后瀏覽器地址欄的Url信息改變
4.可以使用Session Cookies Application等對象進行頁面間的數(shù)據(jù)傳遞
5.重定向操作發(fā)生在客戶端,總共涉及到兩次與Web服務器的通信:一次是對原始頁面的請求,另一次是重定向新頁面的請求
Server.Transfer()方法
1.實現(xiàn)頁面跳轉的同時將頁面的控制權進行移交
2.頁面跳轉過程中Request Session等保存的信息不變,跳轉之后可以使用上一個頁面提交的數(shù)據(jù)
3.跳轉之后瀏覽器地址欄的Url不變
4.這種方法的重定向請求是在服務器端的進行的,瀏覽器不知道頁面已經發(fā)生了一次跳轉
Server.Execute()方法
1.該方法允許當前頁面執(zhí)行同一個Web服務器上的另一個頁面
2.頁面執(zhí)行完畢之后重新回到原始頁面發(fā)出Server.Execute()的位置。
3.這種方式類似針對頁面的一次函數(shù)調用 被請求的頁面可以使用原始頁面的表單數(shù)據(jù)和查詢字符串集合
4.被調用頁面的Page指令的EnableViewStateMac屬性設置為False
話題相關:
1. 為了確保HTML輸出的合法性 最好使用Response.Redirect方法;因為Server.Execute 或者Server.Transfer方法返回給客戶端的頁面包含多個<Html><body>標記,不是合法的HTML頁面,在非IE瀏覽器中可能會發(fā)生錯誤。
2. 由于Server.Transfer在服務器端執(zhí)行重定向,所以避免了不必要的網絡通信,從而獲得了更好的性能和瀏覽效果
1.<a href=”test.aspx”></a>
2.這是最常見的一種轉向方法;
HyperLink控件
1.Asp.net 服務器端控件 屬性NavigateUrl指定要跳轉到的Url地址
2.NavigateUrl是可以在服務器端使用代碼修改,這個區(qū)別于<a>
3.由于HyperLink本身沒有事件所以要在服務器端其它事件中設置NavigateUrl
4.代碼示例
<Asp:HyperLink id=”hyperlink” runat=”server” NavigatoeUrl=”test.aspx”>ok</Asp:HyperLink>
Response.Redirect()方法
1.過程:發(fā)送一個Http響應到客戶端,通知客戶端跳轉到一個新的頁面,然后客戶端再發(fā)送跳轉請求到服務器端。
2.頁面跳轉之后內部控件保存的所有信息丟失,當A跳轉到B,B頁面將不能訪問A頁面提交的數(shù)據(jù)信息。
3.使用這個方法使用這個方法跳轉后瀏覽器地址欄的Url信息改變
4.可以使用Session Cookies Application等對象進行頁面間的數(shù)據(jù)傳遞
5.重定向操作發(fā)生在客戶端,總共涉及到兩次與Web服務器的通信:一次是對原始頁面的請求,另一次是重定向新頁面的請求
Server.Transfer()方法
1.實現(xiàn)頁面跳轉的同時將頁面的控制權進行移交
2.頁面跳轉過程中Request Session等保存的信息不變,跳轉之后可以使用上一個頁面提交的數(shù)據(jù)
3.跳轉之后瀏覽器地址欄的Url不變
4.這種方法的重定向請求是在服務器端的進行的,瀏覽器不知道頁面已經發(fā)生了一次跳轉
Server.Execute()方法
1.該方法允許當前頁面執(zhí)行同一個Web服務器上的另一個頁面
2.頁面執(zhí)行完畢之后重新回到原始頁面發(fā)出Server.Execute()的位置。
3.這種方式類似針對頁面的一次函數(shù)調用 被請求的頁面可以使用原始頁面的表單數(shù)據(jù)和查詢字符串集合
4.被調用頁面的Page指令的EnableViewStateMac屬性設置為False
話題相關:
1. 為了確保HTML輸出的合法性 最好使用Response.Redirect方法;因為Server.Execute 或者Server.Transfer方法返回給客戶端的頁面包含多個<Html><body>標記,不是合法的HTML頁面,在非IE瀏覽器中可能會發(fā)生錯誤。
2. 由于Server.Transfer在服務器端執(zhí)行重定向,所以避免了不必要的網絡通信,從而獲得了更好的性能和瀏覽效果

