Asp.net 5種頁面轉(zhuǎn)向方法
更新時(shí)間:2009年02月25日 23:00:40 作者:
頁面轉(zhuǎn)向也是有技巧的,下面的是asp.net下的幾種轉(zhuǎn)向方法。
標(biāo)簽
1.<a href=”test.aspx”></a>
2.這是最常見的一種轉(zhuǎn)向方法;
HyperLink控件
1.Asp.net 服務(wù)器端控件 屬性NavigateUrl指定要跳轉(zhuǎn)到的Url地址
2.NavigateUrl是可以在服務(wù)器端使用代碼修改,這個(gè)區(qū)別于<a>
3.由于HyperLink本身沒有事件所以要在服務(wù)器端其它事件中設(shè)置NavigateUrl
4.代碼示例
<Asp:HyperLink id=”hyperlink” runat=”server” NavigatoeUrl=”test.aspx”>ok</Asp:HyperLink>
Response.Redirect()方法
1.過程:發(fā)送一個(gè)Http響應(yīng)到客戶端,通知客戶端跳轉(zhuǎn)到一個(gè)新的頁面,然后客戶端再發(fā)送跳轉(zhuǎn)請求到服務(wù)器端。
2.頁面跳轉(zhuǎn)之后內(nèi)部控件保存的所有信息丟失,當(dāng)A跳轉(zhuǎn)到B,B頁面將不能訪問A頁面提交的數(shù)據(jù)信息。
3.使用這個(gè)方法使用這個(gè)方法跳轉(zhuǎn)后瀏覽器地址欄的Url信息改變
4.可以使用Session Cookies Application等對象進(jìn)行頁面間的數(shù)據(jù)傳遞
5.重定向操作發(fā)生在客戶端,總共涉及到兩次與Web服務(wù)器的通信:一次是對原始頁面的請求,另一次是重定向新頁面的請求
Server.Transfer()方法
1.實(shí)現(xiàn)頁面跳轉(zhuǎn)的同時(shí)將頁面的控制權(quán)進(jìn)行移交
2.頁面跳轉(zhuǎn)過程中Request Session等保存的信息不變,跳轉(zhuǎn)之后可以使用上一個(gè)頁面提交的數(shù)據(jù)
3.跳轉(zhuǎn)之后瀏覽器地址欄的Url不變
4.這種方法的重定向請求是在服務(wù)器端的進(jìn)行的,瀏覽器不知道頁面已經(jīng)發(fā)生了一次跳轉(zhuǎn)
Server.Execute()方法
1.該方法允許當(dāng)前頁面執(zhí)行同一個(gè)Web服務(wù)器上的另一個(gè)頁面
2.頁面執(zhí)行完畢之后重新回到原始頁面發(fā)出Server.Execute()的位置。
3.這種方式類似針對頁面的一次函數(shù)調(diào)用 被請求的頁面可以使用原始頁面的表單數(shù)據(jù)和查詢字符串集合
4.被調(diào)用頁面的Page指令的EnableViewStateMac屬性設(shè)置為False
話題相關(guān):
1. 為了確保HTML輸出的合法性 最好使用Response.Redirect方法;因?yàn)镾erver.Execute 或者Server.Transfer方法返回給客戶端的頁面包含多個(gè)<Html><body>標(biāo)記,不是合法的HTML頁面,在非IE瀏覽器中可能會發(fā)生錯(cuò)誤。
2. 由于Server.Transfer在服務(wù)器端執(zhí)行重定向,所以避免了不必要的網(wǎng)絡(luò)通信,從而獲得了更好的性能和瀏覽效果
1.<a href=”test.aspx”></a>
2.這是最常見的一種轉(zhuǎn)向方法;
HyperLink控件
1.Asp.net 服務(wù)器端控件 屬性NavigateUrl指定要跳轉(zhuǎn)到的Url地址
2.NavigateUrl是可以在服務(wù)器端使用代碼修改,這個(gè)區(qū)別于<a>
3.由于HyperLink本身沒有事件所以要在服務(wù)器端其它事件中設(shè)置NavigateUrl
4.代碼示例
<Asp:HyperLink id=”hyperlink” runat=”server” NavigatoeUrl=”test.aspx”>ok</Asp:HyperLink>
Response.Redirect()方法
1.過程:發(fā)送一個(gè)Http響應(yīng)到客戶端,通知客戶端跳轉(zhuǎn)到一個(gè)新的頁面,然后客戶端再發(fā)送跳轉(zhuǎn)請求到服務(wù)器端。
2.頁面跳轉(zhuǎn)之后內(nèi)部控件保存的所有信息丟失,當(dāng)A跳轉(zhuǎn)到B,B頁面將不能訪問A頁面提交的數(shù)據(jù)信息。
3.使用這個(gè)方法使用這個(gè)方法跳轉(zhuǎn)后瀏覽器地址欄的Url信息改變
4.可以使用Session Cookies Application等對象進(jìn)行頁面間的數(shù)據(jù)傳遞
5.重定向操作發(fā)生在客戶端,總共涉及到兩次與Web服務(wù)器的通信:一次是對原始頁面的請求,另一次是重定向新頁面的請求
Server.Transfer()方法
1.實(shí)現(xiàn)頁面跳轉(zhuǎn)的同時(shí)將頁面的控制權(quán)進(jìn)行移交
2.頁面跳轉(zhuǎn)過程中Request Session等保存的信息不變,跳轉(zhuǎn)之后可以使用上一個(gè)頁面提交的數(shù)據(jù)
3.跳轉(zhuǎn)之后瀏覽器地址欄的Url不變
4.這種方法的重定向請求是在服務(wù)器端的進(jìn)行的,瀏覽器不知道頁面已經(jīng)發(fā)生了一次跳轉(zhuǎn)
Server.Execute()方法
1.該方法允許當(dāng)前頁面執(zhí)行同一個(gè)Web服務(wù)器上的另一個(gè)頁面
2.頁面執(zhí)行完畢之后重新回到原始頁面發(fā)出Server.Execute()的位置。
3.這種方式類似針對頁面的一次函數(shù)調(diào)用 被請求的頁面可以使用原始頁面的表單數(shù)據(jù)和查詢字符串集合
4.被調(diào)用頁面的Page指令的EnableViewStateMac屬性設(shè)置為False
話題相關(guān):
1. 為了確保HTML輸出的合法性 最好使用Response.Redirect方法;因?yàn)镾erver.Execute 或者Server.Transfer方法返回給客戶端的頁面包含多個(gè)<Html><body>標(biāo)記,不是合法的HTML頁面,在非IE瀏覽器中可能會發(fā)生錯(cuò)誤。
2. 由于Server.Transfer在服務(wù)器端執(zhí)行重定向,所以避免了不必要的網(wǎng)絡(luò)通信,從而獲得了更好的性能和瀏覽效果
相關(guān)文章
顯示非站點(diǎn)目錄及映射網(wǎng)絡(luò)磁盤路徑的圖片
本文就將教你怎樣顯示非站點(diǎn)目錄下的圖片,你可以顯示站點(diǎn)所在服務(wù)器所有驅(qū)動器目錄的圖片,以及映射網(wǎng)絡(luò)磁盤路徑的圖片,感興趣的朋友可以了解下就當(dāng)鞏固知識了或許對你學(xué)習(xí).net有所幫助2013-02-02
ASP.NET MVC實(shí)現(xiàn)批量文件上傳
這篇文章主要為大家詳細(xì)介紹了ASP.NET MVC實(shí)現(xiàn)批量文件上傳,簡單介紹單文件上傳的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09
asp.net 身份驗(yàn)證(分目錄驗(yàn)證篇)
在上一篇博文《asp.net中的身份驗(yàn)證(最簡單篇)》中的身份驗(yàn)證雖然很簡單,但是有一個(gè)缺點(diǎn),就是訪問整個(gè)網(wǎng)站都必須要經(jīng)過身份驗(yàn)證,而事實(shí)上,很多網(wǎng)站都不會這么要求的。2009-05-05
ASP.NET對HTML頁面元素進(jìn)行權(quán)限控制(二)
分三步實(shí)現(xiàn):標(biāo)出界面所要分配權(quán)限的元素、掃描界面獲取所要分配權(quán)限的元素信息、存入數(shù)據(jù)庫中,感興趣的朋友可以了解下2013-12-12
.NET Core讀取配置文件方式詳細(xì)總結(jié)
這篇文章主要為大家詳細(xì)總結(jié)了.NET Core讀取配置文件方式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-08-08

