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