介紹ASP.NET頁面之間資料傳遞的幾種方法,並介紹一些這些方法的優缺點?

來源:互聯網
上載者:User

 

1)Request.QueryString    在ASP時代,這個是較常用的方法,到了ASP.NET,好像用的人不多了,但是不管怎麼說,這是一個沒有過時,且很值得推薦的方法,因為不管是ASP還是ASP.NET,最基本的都還是基於HTTp協議的。 缺點是非常明顯的,讓在多個頁面傳遞時,可能就Request不到了

2)Session    這個是最常用的一個方法,Session的優點是使用簡單,缺點是佔用伺服器資源,因為每一個Session都意味這伺服器需要維護相應客戶的會話資訊,自然如果登入的使用者多了,那麼將非常佔用伺服器資源。另外Session還有一個缺點,預設的如果你登入後20分鐘內沒有任何動作,伺服器自動會取消該會話,所以那時你又需要登入。 PS。這裡使得我想起一個事情,前幾天有一個公司讓我看了一段代碼,在登入時,就是使用Session記錄使用者登入的,My GOD,微軟知道了肯定要吐血!!它辛辛苦苦給你提供的web.config裡的配置 <deny user="*"/> 就要這一個配置,你不用,仍然用ASP時代的Session,豈不是浪費了MS的一片苦心

3)Application    這個在ASP時代還是比較常用的,主要用去儲存全域變數,例如資料庫連結資訊,到了ASP.NET時代,用的不多,至少我好象一直沒有用過。

4)Cookie    這個是我的最愛,Cookie最大的特點是由用戶端維護,不用佔用伺服器資源,而且你可以設定使用者登入時,Cookie的有效期間,例如一天,這樣在一天內你不用擔心系統再讓你登入。當然Cookie也有缺點,那就是安全性,因為Cookie在用戶端,確實有些軟體可以分析Cookie的登入資訊,所以你寫入Cookie的內容不要過于敏感,例如不要儲存密碼,還有作為安全,寫入Cookie的內容最好要加密。

5)Viewstate    ASP.NET新增的,Viewstate使用簡單,缺點是只能夠在同一個頁面使用,在ASP.NET2.0裡這個問題可以使用Button的PostBackUrl進行結果。

6)Cache   使用Cache儲存資料還想不多,但是畢竟也是一種手段,另外,在使用Cache儲存DataSet時,其實還是引用而不是內容的拷貝。 

 一、目前在ASP.NET中頁面傳值共有這麼幾種方式:

1、表單提交, <form action= "target.aspx" method = "post" name = "form1"> <input name = "param1" value = "1111"/> <input name = "param2" value = "2222"/> </form> .... form1.submit(); .... 此種方在ASP。NET中無效,因為ASP。NET的表單總是提交到自身頁面,如果要提交到別一頁面,需要特殊處理。

2、<A href="target.aspx?param1=1111&m2=2222">連結地址傳送</A> 接收頁面: string str = Request["param1"]

3、Session共用 發送頁面:Session("param1") = "1111"; 按收頁面 string str = Session("param1").ToString();

4、Application共用 發送頁面: Application("param1") = "1111"; 按收頁面: string str = Application("param1").ToString(); 此種方法不常使用,因為Application在一個應用程式定義域範圍共用,所有使用者可以改變及設定其值,故只應用計數器等需要全域變數的地方。

5、Cookie

6、Response.Redirect()方式 Response.Redirect("target.aspx?param1=1111&m2=2222") 接收頁面: string str = Request["param1"]

7、Server.Transfer()方式。 Server.Transfer("target.aspx?param1=1111&m2=2222") 接收頁面: string str = Request["param1"]

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.