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

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

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

    Hopes

    Start Here..

     

    Server.Transfer VS Response.Redirect

    如果你讀過很多行業(yè)雜志和 ASP.NET 示例,你會(huì)發(fā)現(xiàn),大多數(shù)人使用 Response.Redirect 將用戶引導(dǎo)到另一個(gè)頁(yè)面,而另一些人好像偏愛于神秘的 Server.Transfer,那么,這二者有什么區(qū)別?

    Response.Redirect 簡(jiǎn)單地發(fā)送一條消息到瀏覽器,告訴瀏覽器定位到另一個(gè)頁(yè)面。你可以使用下面的代碼將用戶引導(dǎo)到另一個(gè)頁(yè)面:
    Response.Redirect("WebForm2.aspx")
    或者
    Response.Redirect(
    "http://www.karlmoore.com/")

    Server.Transfer 也是通過一條語句將用戶引導(dǎo)到另一頁(yè)面,比如:Server.Transfer(
    "WebForm2.aspx")。不過,這條語句有一系列獨(dú)特的優(yōu)缺點(diǎn)。

    首先,通過 Server.Transfer 引導(dǎo)到另一頁(yè)面保留服務(wù)器資源,通過更改服務(wù)器端“焦點(diǎn)”和傳輸請(qǐng)求來代替告訴瀏覽器重定向,這就意味著你不會(huì)占用較多的 HTTP 請(qǐng)求,因此這可以減輕服務(wù)器的壓力,使你的服務(wù)器運(yùn)行更快。

    不過,請(qǐng)注意,由于 
    "transfer" 只能在同一服務(wù)器端的同一站點(diǎn)間運(yùn)行,所以你不能用 Server.Transfer 將用戶重定向到另一服務(wù)器上的站點(diǎn)。要重定向到服務(wù)器以外的站點(diǎn),只有 Response.Redirect 能辦到。

    其次,Server.Transfer 保留瀏覽器端的 URL 地址。這對(duì)流線型的數(shù)據(jù)輸入很有幫助,不過這也增加了調(diào)試的復(fù)雜度。

    還有:Server.Transfer 方法還有另一個(gè)參數(shù)——
    "preserveForm"。如果你設(shè)置這個(gè)參數(shù)為 True,比如:Server.Transfer("WebForm2.aspx", True), 那么 query string 和任何 form 變量都會(huì)同時(shí)傳遞到你定位的頁(yè)面。

    例:WebForm1.aspx 有一個(gè)文本框名為 TextBox1,你利用 preserveForm 為 True 傳遞到 WebForm2.aspx,你仍然可以用 Request.Form(
    "TextBox1") 來取得文本框的值。

    這種技術(shù)對(duì)向?qū)降亩囗?yè)面輸入很有用,不過這里有一個(gè)你必須注意的問題是,當(dāng)你使用 preserveForm 參數(shù)時(shí),ASP.NET 有一個(gè) bug,通常情況下,當(dāng)試圖傳遞 form 或 query 
    string 值時(shí)會(huì)發(fā)生錯(cuò)誤。請(qǐng)參見:http://support.microsoft.com/default.aspx?id=kb;en-us;Q316920

    非官方的解決辦法是在你要傳遞的目的頁(yè)面中設(shè)置 enableViewStateMac 屬性為 True,然后再將其設(shè)置回 False。這說明你需要使用 enableViewStateMac 的 False 值才能解決這個(gè)問題。

    總結(jié):Response.Redirect 簡(jiǎn)單地告訴瀏覽器訪問另一個(gè)頁(yè)面。Server.Transfer 有利于減少服務(wù)器請(qǐng)求,保持地址欄 URL 不變,允許你將 query 
    string 和 form 變量傳遞到另一個(gè)頁(yè)面(有一點(diǎn)小小的缺陷)。

    重要提示:不要混淆了 Server.Transfer 和 Server.Execute,Server.Execute 執(zhí)行一個(gè)頁(yè)面,并返回結(jié)果,在過去 Server.Execute 很有用,不過在 ASP.NET 里,它被 fresher 方法所代替,所以忽略 Server.Execute。

    關(guān)于作者
    卡爾·穆爾(MCSD, MVP)是英國(guó)約克郡一名經(jīng)驗(yàn)豐富的作家。他編寫了一系列技術(shù)書籍,包括新出版的  Ultimate VB .NET and ASP.NET Code Book,另外在工業(yè)聯(lián)合會(huì)和BBC電臺(tái)長(zhǎng)期擔(dān)任要職。穆爾同樣擁有自己的公司,白崖計(jì)算有限公司,點(diǎn)擊訪問其官方主頁(yè)http:
    //www.karlmoore.com/.

    posted on 2012-05-10 21:04 ** 閱讀(118) 評(píng)論(0)  編輯  收藏


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


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

    導(dǎo)航

    統(tǒng)計(jì)

    公告

    你好!

    常用鏈接

    留言簿(2)

    隨筆檔案

    文章分類

    文章檔案

    新聞檔案

    相冊(cè)

    收藏夾

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

    友情鏈接

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲精品无码久久久久去q| 全免费一级毛片在线播放| 亚洲无线码一区二区三区| 免费在线观看一区| 亚洲第一福利网站在线观看| 美女黄色毛片免费看| 全黄性性激高免费视频| 国产尤物在线视精品在亚洲| 国产精品国产午夜免费福利看 | 免费看又爽又黄禁片视频1000| 亚洲娇小性色xxxx| 久久久久亚洲av无码专区喷水| 免费av一区二区三区| 666精品国产精品亚洲| 日日麻批免费40分钟日本的| 国产伦精品一区二区三区免费下载| 中文字幕不卡亚洲 | 中文字幕在线亚洲精品| 一级毛片a免费播放王色 | 日本人的色道www免费一区| 亚洲av综合日韩| 亚洲天堂免费在线视频| 最好免费观看高清在线| 亚洲欧洲日产专区| 成人免费看黄20分钟| 全部一级一级毛片免费看| 亚洲成av人片在线观看无码不卡| 222www在线观看免费| 亚洲AV永久无码精品一福利| 亚洲日韩在线第一页| 99re在线精品视频免费| 亚洲精品无码日韩国产不卡av| 亚洲一区二区三区国产精品| 久久免费国产视频| 亚洲乱码日产精品一二三| 亚洲一级特黄大片在线观看 | 久久精品免费电影| 亚洲乱码在线卡一卡二卡新区| 亚洲免费在线视频播放| 久久国产亚洲精品无码| 日韩精品视频免费网址|