文章編號(hào):1672-5913(2008)16-0114-02
摘要:本文從實(shí)際教學(xué)出發(fā),討論了ASP.NET 2.0中頁面重定向的使用條件和環(huán)境,并結(jié)合相關(guān)教學(xué)實(shí)例詳細(xì)分析了頁面重定向的各種使用方法及相關(guān)的注意事項(xiàng),在教學(xué)中取得了較好的效果。
關(guān)鍵詞:ASP.NET;頁面重定向;網(wǎng)絡(luò)編程
中圖分類號(hào):G642
文獻(xiàn)標(biāo)識(shí)碼:A
1引言
ASP.NET是微軟提供的新一代的Web開發(fā)平臺(tái),是軟件技術(shù)及相關(guān)專業(yè)的一門重要課程,學(xué)生對(duì)它的掌握程度直接影響到網(wǎng)絡(luò)編程水平的高低。頁面重定向是ASP.NET、JSP等Web服務(wù)器語言中一個(gè)非常重要的組成部分,在留言版、頁面加載等任務(wù)中應(yīng)用十分廣泛。一個(gè)網(wǎng)站通常由多個(gè)頁面構(gòu)成,頁面之間的關(guān)系支撐著整個(gè)網(wǎng)站的層次邏輯結(jié)構(gòu),采用何種頁面重定向方法在各個(gè)頁面之間進(jìn)行跳轉(zhuǎn)是非常重要的。學(xué)生在學(xué)習(xí)過程中往往對(duì)頁面重定向所采用的方法了解不透徹,區(qū)分不清楚,難以使用正確的重定向方法。本文從實(shí)際教學(xué)出發(fā),首先分析頁面重定向的使用方法,再輔以教學(xué)中的實(shí)例,總結(jié)頁面重定向方法的使用環(huán)境,讓學(xué)生對(duì)頁面重定向有更深入的理解。
2頁面重定向的使用方法
2.1使用瀏覽器以編程方式重定向
通過調(diào)用 Response.Redirect 方法可以使瀏覽器鏈接到一個(gè)指定的URL。該方法接受一個(gè)表示目標(biāo)位置的URL字符串,服務(wù)器將頁面直接轉(zhuǎn)向到Main.aspx。
例如在網(wǎng)絡(luò)學(xué)習(xí)平臺(tái)首頁登錄成功則轉(zhuǎn)到主頁面并傳遞用戶名,可以通過如下的代碼完成:
protected void Redirect_Click(object sender,EventArgs e)
{
Response.Redirect(\"Main.aspx?userName=\" + User
Name.Text)\");
}
該例將一個(gè)查詢字符串作為參數(shù)傳遞給了Redirect方法的目標(biāo)URL。通過Request[\"userName\"]獲得傳遞的參數(shù)數(shù)據(jù)。
protected void Page_Load(object sender,EventArgs e)
{
string userName = Request[\"userName\"];
}
2.2使用超鏈接方式
可以通過使用 HyperLink 服務(wù)器控件以編程方式控制超鏈接的鏈接文本和目標(biāo) URL,也可以在 ASP.NET 網(wǎng)頁上使用HTML標(biāo)記創(chuàng)建靜態(tài)鏈接。如下面的代碼所示:
ID=\"HyperLink1\" runat=\"server\" NavigateUrl=\"http://www.rzsoft.com\">軟件網(wǎng)站 以上兩種方法可以將頁面重定位到任何頁。但是不會(huì)將當(dāng)前頁的信息傳遞到目標(biāo)頁,如果需要跨頁傳遞(共享)信息,通常需要使用查詢QueryString字符串或Session會(huì)話狀態(tài)。 2.3服務(wù)器傳輸方法 (1)Server.Transfer 方法則是在服務(wù)器上直接重定向到目標(biāo)頁。如代碼所示: protected void Transfer_Click(object sender, EventArgs e) { Server.Transfer(\"Default.aspx \",true); } 通過使用Request.Form[\"txtUserName\"]方法,可以獲得源頁面中Textbox控件的值。與Redirect方法相比,重定向完全在服務(wù)器端進(jìn)行,Transfer直接由服務(wù)器端轉(zhuǎn)向目標(biāo)頁,并且在頁面轉(zhuǎn)換時(shí),Request集合里的數(shù)據(jù)不丟失,瀏覽器中的URL不會(huì)改變,采用Transfer方式重定向時(shí),源頁面與目標(biāo)頁面必須位于相同的 Web 應(yīng)用程序中,否則會(huì)引發(fā)異常。 (2)Server.Execute 方法,它和Server.Transfer功能類似。如代碼所示: protected void Execute_Click(object sender, EventArgs e) { Server.Execute (\"Default.aspx \"); } Server.Execute方法允許當(dāng)前的頁面執(zhí)行一個(gè)同一Web服務(wù)器上的指定頁面,當(dāng)指定的頁面執(zhí)行完畢,控制流程重新返回原頁面發(fā)出Server.Execute調(diào)用的位置。Server.Execute方法與Server.Transfer主要的區(qū)別在于:Server.execute在轉(zhuǎn)向Default.aspx執(zhí)行完成后,還會(huì)返回原來的頁面繼續(xù)處理。而調(diào)用Server.Transfer后,當(dāng)前的頁面終止執(zhí)行,執(zhí)行流程轉(zhuǎn)入另一個(gè)頁面。 通過對(duì)以上三類使用方法的分析和實(shí)例的演示,大部分學(xué)生對(duì)頁面重定向的執(zhí)行過程有了較為清晰的認(rèn)識(shí)。然后要求學(xué)生完成實(shí)現(xiàn)留言版中應(yīng)該用到的頁面重定向的方法,讓學(xué)生自己試著寫程序,可以發(fā)現(xiàn)有一部分學(xué)生能靈活地使用頁面重定向的各種方法。 3總結(jié) 通過講解和學(xué)生實(shí)踐的理解,總結(jié)出頁面重定向的各種方法的區(qū)別與應(yīng)用環(huán)境如下: (1) 如果要讓用戶來決定何時(shí)轉(zhuǎn)換頁面以及轉(zhuǎn)到哪一個(gè)頁面并且用程序來控制轉(zhuǎn)換的目標(biāo),超鏈接方式較適合。 (2) 如果要把用戶連接到另一臺(tái)服務(wù)器上的資源,或者要將查詢字符串作為URL的一部分保留并且要確保HTML輸出合法,則使用Response.Redirect方法。 (3) 如果要將執(zhí)行流程轉(zhuǎn)入同一Web服務(wù)器的另一個(gè)頁面,應(yīng)當(dāng)使用Server.Transfer方法,因?yàn)樵摲椒軌虮苊獠槐匾木W(wǎng)絡(luò)通信,從而獲得更好的性能和瀏覽效果。 (4) 如果要捕獲一個(gè)頁面的輸出結(jié)果,然后將輸出結(jié)果插入另一個(gè)頁面的特定位置,則應(yīng)使用Server.Execute方法。 (5) 在網(wǎng)絡(luò)傳輸狀態(tài)較好的情況下,Response.Redirect (URL)方法效率最高,Server.Transfer方法和Server.Execute方法最靈活,Server.Execute方法占用資源最多。 參考文獻(xiàn): [1] 榮耀. ASP.NET 2.0實(shí)戰(zhàn)起步[M]. 北京:機(jī)械工業(yè)出版社,2008. [2] 劉繁華.基于現(xiàn)代信息技術(shù)的協(xié)同教育平臺(tái)(網(wǎng)站)的設(shè)計(jì)與應(yīng)用研究[J].電化教育研究,2007,(1). [3] 余勝泉,何克抗.網(wǎng)絡(luò)教學(xué)平臺(tái)的體系結(jié)構(gòu)與功能[J].中國電化教育,2001(8),60-63.