日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

解讀ASP.NET 2.0跨網(wǎng)頁提交的三種方法_.Net教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:揭秘設(shè)計ASP.NET應(yīng)用程序的七大妙招
隨著微軟.NET的流行,ASP.NET越來越為廣大開發(fā)人員所接受。作為ASP.NET的開發(fā)人員,我們不僅需要掌握其基本的原理,更要多多實踐,從實踐中獲取真正的開發(fā)本領(lǐng)。在我們的實際開發(fā)中,往往基本的原理滿足不了開發(fā)需求,我們更多的要積累一些開發(fā)技巧,本文就

當(dāng)在一個ASP.NET Web頁面中進行操作時,在默認情況下向當(dāng)前頁進行提交。這種行為在ASP.NET出現(xiàn)之前并沒有什么關(guān)系,但在ASP.NET中,當(dāng)我們想向另外一個Web頁提交一個Web Form時該如何做呢?在ASP.NET1.0中這個問題變得很難解決,但在ASP.NET 2.0中為開發(fā)人員提供了更容易的解決技術(shù):跨網(wǎng)頁提交。這種技術(shù)允許一個網(wǎng)頁在提交數(shù)據(jù)時提交給另外的一個頁面。在跨網(wǎng)頁提交中,用于初始化提交代碼的頁面叫源頁面,而客戶提交的頁面叫目標(biāo)頁面。

為了方便起見,目標(biāo)頁面仍然獲得原頁面提交的所有數(shù)據(jù)。換名話說,從技術(shù)觀點出發(fā),我們可以用同樣的方式處理其他ASP.NET頁面提交的數(shù)據(jù)。

這個新特性意味著ASP.NET2.0開發(fā)人員目前有三種可供選擇的技術(shù)來將數(shù)據(jù)從一個web頁面?zhèn)魉偷搅硗庖粋頁面。這三種方法是:響應(yīng)重定向,服務(wù)端傳輸和新的跨網(wǎng)頁提交特性。我們可以已經(jīng)熟悉前兩種技術(shù)了,因此,我們只是簡要地復(fù)習(xí)一下它們,然后我們會將主要精力放到學(xué)習(xí)如何使用跨網(wǎng)頁提交特性,以及闡述一下這種方法和響應(yīng)重定向以及服務(wù)傳輸方式有什么不同。

一、響應(yīng)重定向方法

響應(yīng)重定向方法是目前為止將一個網(wǎng)頁重定向到另一個網(wǎng)頁的最簡單的方法的最簡單的方法。當(dāng)Web服務(wù)器接到一個重定向請求后,它會將一個響應(yīng)頭送給客戶端,這將導(dǎo)致客戶端發(fā)送一個新的請求到服務(wù)器。按句話說,一個重定向請求實際上是兩個請求響應(yīng):一個是最初的請求響應(yīng),另一個是新的重定向請求響應(yīng)。

在ASP.NET中實現(xiàn)重定向很容易。下面的代碼演示了如何使用Response.Redirect方法實現(xiàn)網(wǎng)頁重定向:

以下為引用的內(nèi)容:
protected void Redirect_Click(object sender, EventArgs e) { Response.Redirect("menu.aspx"); }

要注意的是重定向請求只是一個GET請求,這就意味著我們不能從源頁中通過重定向命令提交數(shù)據(jù)。但是我們可以在重定向中使用查詢字符串來傳遞數(shù)據(jù)。如下面代碼所示:

以下為引用的內(nèi)容:
protected void Redirect_Click(object sender, EventArgs e) { Response.Redirect("menu.aspx?userName=" UserName.Text)); }

上面的例子將一個查詢字符串作為參數(shù)傳遞給了Response.Redirect方法的目標(biāo)URL。我們可以通過如下的代碼獲得源數(shù)據(jù)。 

以下為引用的內(nèi)容:
protected void Page_Load(object sender, EventArgs e) { string userName = Request["userName"]; }

二、服務(wù)器傳輸方法

和依賴于客戶端向另一個新頁發(fā)請求不同,服務(wù)器傳輸是一種服務(wù)器重定向技術(shù),這種技術(shù)通過簡單的改變Web服務(wù)器所處理的代碼來達到請求一個新頁的目的。當(dāng)被請求頁和源頁面在同一個服務(wù)器時,服務(wù)器傳輸要比Response.Redirect方法更有效,這是由于這種技術(shù)可以避免額外的開銷,僅僅使用服務(wù)器的資源就可以進行重定向。要注意的這種技術(shù)有一個副作用,在頁面進行重定向時,客戶端的URL仍然會保持源頁面的URL,這可能會使客戶認為他們所獲得的數(shù)據(jù)是源頁面產(chǎn)生的。當(dāng)然,在大多數(shù)情況下,這不是問題,但是這將使調(diào)試變得更困難。

Server.Transfer方法還可以保存初始頁的HttpContext。因此,目標(biāo)頁可以訪問源頁面的值。我們可以使用FormsCollection屬性來從目標(biāo)頁面中獲得源頁面的值。首先,要確定我們使用了被重載的方法,這個方法有兩個參數(shù):目標(biāo)URL和一個Boolean類型的值,告訴服務(wù)器是否保存用于描述源頁面值的 Form。如下面的代碼所示:

Server.Transfer("Menu.aspx",true);

然后,我們在目標(biāo)頁面中獲得一個叫txtUserName的Textbox控件的值的代碼如下:

以下為引用的內(nèi)容:
object obj = Request.Form["txtUserName"];

三、Response.Redirect和Server.Transfer的比較

由于Response.Redirect方法要進行兩次請求響應(yīng)操作,因此,我們應(yīng)該在對性能要求高的網(wǎng)站盡量避免使用這種方法。然而,只從技術(shù)上說,使用redirect方式確實可以從一個網(wǎng)頁跳到另一個網(wǎng)頁。相比之下,Server.Transfer會更有效率,但是跳轉(zhuǎn)的范圍僅限于同一個Web服務(wù)器的不同網(wǎng)頁。從本質(zhì)上說,我們可以使用Server.Transfer來消除不必要的請求響應(yīng)操作。如果我們需要重定位到不同服務(wù)器的網(wǎng)頁,就需要使用Response.Redirect方法。

四、跨頁提交概述

在ASP.NET 2.0中,我們可以通過實現(xiàn)IbuttonControl接口提交給不同的WebForm,來實現(xiàn)跨網(wǎng)頁的提交。和Response.Redirect類似,跨網(wǎng)頁提交是一個基于客戶端的傳輸機制,但也有點象Server.Transfer,目標(biāo)網(wǎng)頁也可以訪問源網(wǎng)頁的數(shù)據(jù)。為了使用跨網(wǎng)頁提交,我們需要在源網(wǎng)頁中的PostBackUrl屬性中指定目標(biāo)URL。

五、實現(xiàn)跨網(wǎng)頁提交

這部分將討論一下如何在 ASP.NET2.0中實現(xiàn)跨網(wǎng)頁提交。為了開始我們的學(xué)習(xí),假設(shè)有兩個Web頁,一個是源Web頁,另一個是目標(biāo)Web頁。在源網(wǎng)頁中初始化了使用按鈕進行的跨網(wǎng)頁提交操作。我們首先必須設(shè)置目標(biāo)網(wǎng)頁按鈕的PostBackUrl屬性,順便說一句,所有實現(xiàn)了
System.Web.UI.WebControls.IbuttonControl接口的Web控件都有跨網(wǎng)頁提交的特性。下面的代碼將演示這一過程。

以下為引用的內(nèi)容:
PostBackUrl="~/target.aspx" text = "Post to a target page"/>

當(dāng)我們設(shè)置PostBackUrl屬性時,ASP.NET框架將相應(yīng)的控件綁定到一個新的叫WebForm_DoPostBackWithOptions的JavaScript函數(shù),產(chǎn)生的Html代碼如下:

以下為引用的內(nèi)容:
onclick="javascript:WebForm_DoPostBackWithOptions( new WebForm_PostBackOptions("btnSubmit", "", false, "", "Target.aspx", false, false))" id="btnSubmit" />

對于上面的html代碼來說,當(dāng)用戶單擊按鈕時,瀏覽器將提交目標(biāo)URL(Target.aspx),而不是源URL。

分享:解析Web開發(fā)模式的顛覆者:ASP.NET MVC
2008年3月微軟針對ASP.NET 3.5發(fā)布的MVC框架(Preview 2 版本)是一個真正意義上的ASP.NET MVC框架。至今,短短4個月內(nèi)此框架已經(jīng)發(fā)展到Preview 4版本。許多國內(nèi)外業(yè)界人士稱該框架為其前基于Web表單開發(fā)模式的歷史性顛覆。本文站在對ASP.NET MVC框架與傳統(tǒng)AS

共2頁上一頁12下一頁
來源:模板無憂//所屬分類:.Net教程/更新時間:2009-06-27
相關(guān).Net教程