程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 使用Cross-Page Postback(跨頁面提交)在頁面間傳遞數據

使用Cross-Page Postback(跨頁面提交)在頁面間傳遞數據

編輯:.NET實例教程

頁面間傳遞數據的幾種方法

在頁面間傳遞數據時,我們有以下幾種選擇:

1、Query String

    一個很常見的方法,Query String是URL中問號之後的那一部分。其優點在於它是輕量級的,不會給服務器帶來任何負擔。而它也有幾個缺點:傳遞的信息僅限於簡單的字符串,而且必須是合法的URL字符;信息是對用戶是可見的,因而存在安全性問題;用戶可能會嘗試手動修改查詢字符串,這可能是程序未預料到或不能防范的;很多浏覽器對URL的長度都有所限制(通常為1KB到2KB)。

2、CookIE

    Cookie是創建在客戶端硬盤上(或者,如果它們是臨時的,則在內存中)的小文件。其優點在於使用時不易被用戶察覺,可被程序中每個頁面使用,並且可將數據長期保存。但它也有一些與Query String 相同的缺點:僅限於簡單的字符串信息;一旦用戶找到了相應的文件,它們也是易於訪問和閱讀的。所以CookIE最好不要用於保存復雜的或私密的信息。

3、Session

    可以在源頁面中將數據保存在Session中,然後在目標頁面中讀取這些數據。注意:將大量的信息存儲在Session中會嚴重影響服務器的性能。

4、Server.Transfer

    要進行服務器端的重定向,可以使用Server.Transfer。因為在服務器端執行,Server.Transfer方法不需要請求另一頁面。使用HttpContext,我們可以在目標頁面中訪問源頁面中的數據。其缺點是,浏覽器並不了解返回給它的是另外一個頁面,它在地址欄中會顯示第一個頁面的URL,這會讓用戶陷入混亂,在他們使用書簽的時候也會產生麻煩。所以不推薦該方法。

5、其它

    還可以使用緩存(Cache)來存儲數據,可在程序的任意處訪問緩存。建議僅對那些修改不太頻繁但經常使用的數據使用緩存。 另外在某些特定情況下還可以使用Application變量,如統計頁面的點擊數等。

使用Cross-Page Postback

ASP.Net 2.0中引入了一個新的方法:跨頁面提交,即postback觸發在另一個頁面。這種技術聽起來很是簡單,但卻存在隱患。一不小心,就會導致你創建的頁面緊密耦合,難以維護和調試。

支持跨頁面提交的機制是一個名為PostBackUrl的屬性,該屬性由IButtonControl接口定義,實現這個接口的按鈕控件包括ImageButton,LinkButton,Button。將PostBackUrl屬性值設置為另一個web窗體的名稱(即URL),當用戶點擊按鈕時,頁面將被提交到新的URL。

看下面這個示例,該示例包括源頁面CrossPage1.aspx和目標頁面CrossPage2.ASPx:

CrossPage1.ASPx


<html XMLns="http://www.w3.org/1999/xHtml" >
<head runat="server">
    <title>Source Page
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved