<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Hopes

    Start Here..

     

    ASP.net頁(yè)面跳轉(zhuǎn)方式比較(轉(zhuǎn)載)

    ASP.net頁(yè)面跳轉(zhuǎn)方式比較(轉(zhuǎn)載)

    上一篇 / 下一篇  2007-08-22 00:00:00 / 個(gè)人分類(lèi):網(wǎng)頁(yè)編程

    查看( 1179 ) / 評(píng)論( 20 ) / 評(píng)分( 79 / 8 )
    ASP.net頁(yè)面跳轉(zhuǎn)方式比較(轉(zhuǎn)載)

    1 response.redirect 這個(gè)跳轉(zhuǎn)頁(yè)面的方法跳轉(zhuǎn)的速度不快,因?yàn)樗?個(gè)來(lái)回(2次postback),但他可以跳 轉(zhuǎn)到任何頁(yè)面,沒(méi)有站點(diǎn)頁(yè)面限制(即可以由雅虎跳到新浪),同時(shí)不能跳過(guò)登錄保護(hù)。但速度慢是其最大缺陷!redirect跳轉(zhuǎn)機(jī)制:首先是發(fā)送一個(gè)http請(qǐng)求到客戶(hù)端,通知需要跳轉(zhuǎn)到新頁(yè)面,然后客戶(hù)端在發(fā)送跳轉(zhuǎn)請(qǐng)求到服務(wù)器端。需要注意的是跳轉(zhuǎn)后內(nèi)部空間保存的所有數(shù)據(jù)信息將會(huì)丟失,所以需要用到session。

    2 server.transfer 速度快,只需要一次postback ,但是。。。。他必須是在同一個(gè)站點(diǎn)下,因?yàn)樗莝erver的一個(gè)方法。另外,他能跳過(guò)登錄保護(hù)。你可以寫(xiě)個(gè)小程序試試:設(shè)計(jì)一個(gè)由頁(yè)面一到頁(yè)面二的跳轉(zhuǎn),但要進(jìn)入到頁(yè)面二需要登錄,form認(rèn)證,但如果跳轉(zhuǎn)語(yǔ)句使用transfer的話,那就不會(huì)彈出登錄頁(yè)面了。這個(gè)方法的重定向請(qǐng)求是發(fā)生在服務(wù)器端,所以瀏覽器的url地址仍然保留的是原頁(yè)面的地址!

    3 sever.execute 這個(gè)方法主要是用在頁(yè)面設(shè)計(jì)上面,而且他必須是跳轉(zhuǎn)同一站點(diǎn)下的頁(yè)面。這個(gè)方法是需要將一個(gè)頁(yè)面的輸出結(jié)果插入到另一個(gè)aspx頁(yè)面的時(shí)候使用,大部分是在表格中,將某一個(gè)頁(yè)面類(lèi)似于嵌套的方式存在于另一頁(yè)面。

    總結(jié):

    當(dāng)需要把用戶(hù)跳轉(zhuǎn)到另一臺(tái)服務(wù)器上的頁(yè)面的時(shí)候 使用redirect

    當(dāng)需要把用戶(hù)跳轉(zhuǎn)到非aspx頁(yè)面時(shí)候,如html 使用redirect

    需要把查詢(xún)字符串作為url一部分的時(shí)候保留傳給服務(wù)器的時(shí)候,因?yàn)槠渌?種方法不能做到2次postback,把數(shù)據(jù)先帶回服務(wù)器 使用redirect

    需要aspx頁(yè)面間的轉(zhuǎn)換(不涉及登錄) 使用transfer

    當(dāng)需要把a(bǔ)spx頁(yè)面的輸出結(jié)果插入到另一個(gè)aspx頁(yè)面的時(shí)候使用 execute方法。

    當(dāng)然,忘記了還有一個(gè)超鏈接!當(dāng)然這個(gè)就不需要講太多了。他是在黨需要用戶(hù)來(lái)決定什么時(shí)候跳轉(zhuǎn)頁(yè)面,就使用超鏈接。

    順便提一下,如何使用redirect方法在查詢(xún)字符串中使用漢字,因?yàn)榻?jīng)常的情況是出現(xiàn)亂碼,原因是url不支持漢字。這個(gè)時(shí)候需要轉(zhuǎn)換:

    string message =server.urlencode("歡迎來(lái)到賽跑專(zhuān)欄");

    先轉(zhuǎn)換,在使用查詢(xún)字符串

    response.redirect("webform2.aspx?msg="+message);

    asp.net實(shí)現(xiàn)從一個(gè)頁(yè)面跳轉(zhuǎn)到另一頁(yè)面方法的比較

    實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)的方法很多,除了服務(wù)器控件是asp.net封裝過(guò)外,其它在asp中也就有了。 
    這么多實(shí)現(xiàn)方法中,都是實(shí)現(xiàn)同樣的功能,為什么還要支持如此多的方法呢,我們實(shí)際應(yīng)用 
    中到底應(yīng)該選擇哪一種方法呢?也許我們大多數(shù)人都是需要用跳轉(zhuǎn)時(shí),隨便想到一個(gè)便拿來(lái)用, 
    從不去考慮它們會(huì)有不同,其實(shí)之前我也是這樣的,對(duì)他們沒(méi)有一個(gè)系統(tǒng)的了解是不能發(fā)揮它 
    們各自的優(yōu)勢(shì)的。好,現(xiàn)在讓我們來(lái)了解一下它們各自的用途吧 
    一、超鍵接 
    這就不說(shuō)了,最簡(jiǎn)單的。 
    二、服務(wù)器控件 
    HyperLink 
    通過(guò)NavigateUrl屬性來(lái)指定要跳轉(zhuǎn)的url。 
    主要用于由用戶(hù)來(lái)決定何時(shí)轉(zhuǎn)換頁(yè)面,但是用程序來(lái)控制轉(zhuǎn)換的目標(biāo)。 
    三、程序控制 
    1、Response.Redirect() 
    服務(wù)器--------》通知客戶(hù)端----------》請(qǐng)求跳轉(zhuǎn)到服務(wù)器端 
    主要用于需要將查詢(xún)字符串作為url的一部分傳遞給另一頁(yè)面,或跳轉(zhuǎn)的頁(yè)面是html頁(yè)面 
    2、Server.Transfer() 
    使用此方法最大的特點(diǎn)是url仍然是跳轉(zhuǎn)前的頁(yè)面的url。 
    主要用于需要將執(zhí)行流程轉(zhuǎn)到同一web服務(wù)器的另一aspx頁(yè)面時(shí)用。因?yàn)樗谔D(zhuǎn)后保留了 
    request和session值,并且可以使用跳轉(zhuǎn)前頁(yè)面的數(shù)據(jù)。 
    3、Server.Execute() 
    此方法執(zhí)行完后程序控制權(quán)會(huì)返回到跳轉(zhuǎn)代碼的下一代碼,相當(dāng)于我們的模態(tài)窗口,此時(shí)可以得到 
    跳轉(zhuǎn)過(guò)頁(yè)面的返回值。 
    常 用于輔助選擇操作,然后返回選擇后的值到當(dāng)前頁(yè)面。 
    有了上面的介紹,我們就應(yīng)該選擇適當(dāng)?shù)臅r(shí)候用不同的跳轉(zhuǎn)方法。

    asp.net網(wǎng)頁(yè)中的四種頁(yè)面跳轉(zhuǎn)技術(shù)的比較

    在asp.net中有四種頁(yè)面跳轉(zhuǎn)導(dǎo)航方式,該如何為你的頁(yè)面選擇一個(gè)呢?

    ·如果要讓用戶(hù)來(lái)決定何時(shí)轉(zhuǎn)換頁(yè)面以及轉(zhuǎn)到哪一個(gè)頁(yè)面,超級(jí)鏈接最適合。

    ·如果要用程序來(lái)控制轉(zhuǎn)換的目標(biāo),但轉(zhuǎn)換的時(shí)機(jī)由用戶(hù)決定,使用Web服務(wù)器的HyperLink控件,動(dòng)態(tài)設(shè)置其N(xiāo)avigateUrl屬性。

    ·如果要把用戶(hù)連接到另一臺(tái)服務(wù)器上的資源,使用Response.Redirect。

    ·用Response.Redirect把用戶(hù)連接到非ASPX的資源,例如HTML頁(yè)面。

    ·如果要將查詢(xún)字符串作為URL的一部分保留,使用Response.Redirect。

    ·如果要將執(zhí)行流程轉(zhuǎn)入同一Web服務(wù)器的另一個(gè)ASPX頁(yè)面,應(yīng)當(dāng)使用Server.Transfer而不是Response.Redirect,因?yàn)镾erver.Transfer能夠避免不必要的網(wǎng)絡(luò)通信,從而獲得更好的性能和瀏覽效果。

    ·如果要捕獲一個(gè)ASPX頁(yè)面的輸出結(jié)果,然后將結(jié)果插入另一個(gè)ASPX頁(yè)面的特定位置,則使用Server.Execute。

    ·如果要確保HTML輸出合法,請(qǐng)使用Response.Redirect,不要使用Server.Transfer或Server.Execute方法。

    關(guān)于Server.Execute,

    這種頁(yè)面導(dǎo)航方式類(lèi)似于針對(duì)ASPX頁(yè)面的一次函數(shù)調(diào)用,被調(diào)用的頁(yè)面能夠訪問(wèn)發(fā)出調(diào)用頁(yè)面的表單數(shù)據(jù)和查詢(xún)字符串集合,所以要把被調(diào)用頁(yè)面Page指令的EnableViewStateMac屬性設(shè)置成False。

    默認(rèn)情況下,被調(diào)用頁(yè)面的輸出追加到當(dāng)前應(yīng)答流。但是,Server.Execute方法有一個(gè)重載的方法,允許通過(guò)一個(gè)TextWriter對(duì)象(或者它的子對(duì)象,例如StringWriter對(duì)象)獲取被調(diào)用頁(yè)面的輸出,而不是直接追加到輸出流,這樣,在原始頁(yè)面中可以方便地調(diào)整被調(diào)用頁(yè)面輸出結(jié)果的位置。

    posted on 2012-08-15 15:00 ** 閱讀(209) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    統(tǒng)計(jì)

    公告

    你好!

    常用鏈接

    留言簿(2)

    隨筆檔案

    文章分類(lèi)

    文章檔案

    新聞檔案

    相冊(cè)

    收藏夾

    C#學(xué)習(xí)

    友情鏈接

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 久久久久国产成人精品亚洲午夜| 亚洲AV一宅男色影视| 2022国内精品免费福利视频| 精品国产综合成人亚洲区| 足恋玩丝袜脚视频免费网站| 亚洲AV一区二区三区四区| 久久久久亚洲av成人无码电影| 91精品国产免费久久国语蜜臀 | 自拍偷自拍亚洲精品第1页 | 久久精品网站免费观看| 精品亚洲视频在线| 亚洲一区二区三区电影| 国产hs免费高清在线观看| 99久久人妻精品免费二区| 视频一区二区三区免费观看| 亚洲综合在线观看视频| 亚洲精品无码你懂的网站| 无码国产精品一区二区免费式直播 | 亚洲无码高清在线观看| 精品一区二区三区免费毛片爱 | 亚洲精品欧美综合四区| 亚洲综合日韩中文字幕v在线| 免费中文字幕在线| aa级一级天堂片免费观看| 免费人成激情视频在线观看冫| 亚洲男人的天堂网站| 久久亚洲AV无码精品色午夜麻豆| 免费中文字幕在线| 午夜精品在线免费观看| 亚洲免费观看网站| a级毛片毛片免费观看久潮| 偷自拍亚洲视频在线观看99| 亚洲一区中文字幕在线电影网 | h片在线观看免费| 毛片亚洲AV无码精品国产午夜| 亚洲成人午夜电影| 亚洲AV日韩AV永久无码久久| 亚洲色图综合在线| 四虎影视精品永久免费| 成人毛片免费观看视频大全| 久久久久久曰本AV免费免费|