欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

asp.net不同頁面間數(shù)據(jù)傳遞的多種方法

 更新時間:2014年01月27日 11:07:09   作者:  
這篇文章主要介紹了asp.net不同頁面間數(shù)據(jù)傳遞的多種方法,包括使用QueryString顯式傳遞、頁面對象的屬性、cookie、Cache等9種方法

1. Get(即使用QueryString顯式傳遞)
方式:在url后面跟參數(shù)。
特點:簡單、方便。
缺點:字符串長度最長為255個字符;數(shù)據(jù)泄漏在url中。
適用數(shù)據(jù):簡單、少量、關(guān)鍵的數(shù)據(jù)。
適用范圍:傳遞給自己、傳遞給另一個目標(biāo)頁面;常用于2個頁面間傳遞數(shù)據(jù)。
用法:例如:url后加?UserID=…,跳轉(zhuǎn)到目標(biāo)頁面,目標(biāo)頁面在伺服端可用Request.QueryString["InputText"]獲取其指定參數(shù)值。

2. Post
方式:通用的方式。利用form提交。
特點:最常用的方法。常用技巧是把隱秘的數(shù)據(jù)存在隱藏域中由form提交。
適用數(shù)據(jù):大量數(shù)據(jù),包括文件上傳。
適用范圍:同Get方法
用法:在客戶端form指定action目標(biāo)后submit、在asp.net的伺服端中使用server.Transfer(url)提交;在伺服端中用Request.Form["FormFieldID"]獲取。

3. 頁面對象的屬性
方式:asp.net特有方式 。利用HttpContext獲取發(fā)請求的頁面的信息。
特點:可以直接存儲對象。
缺點:注意強制轉(zhuǎn)換的類型要正確。
適用數(shù)據(jù):各種數(shù)據(jù)。
適用范圍:頁面之間傳遞復(fù)雜數(shù)據(jù)。
用法:獲取Context.Handler將其轉(zhuǎn)換為發(fā)請求的頁面的實例,隨后就可以輕松訪問其form中的字段、甚至屬性。其中的Context是指HttpContext對象,Handler是其屬性,Context.Handler的意思可以理解為創(chuàng)建源頁類的實例變量,而得到此實例之后,就可以直接訪問其中的屬性和Public方法了。

4. cookie
方式:將數(shù)據(jù)存在客戶端的經(jīng)典方法。
缺點:安全性低、受客戶端設(shè)置限制、一個站點僅存20個cookie,每個容量4096字節(jié)。
有效期:自定義或被用戶清除
適用數(shù)據(jù):用戶的會話數(shù)據(jù)(一般是用戶名,用戶的個性化設(shè)置信息等)
適用范圍:單個用戶、整個站點所有頁面
用法:引用Request.Cookies(讀取信息)、Response.Cookies(寫入信息)、或用HttpCookieCollection直接創(chuàng)建Cookie對象。

5. Session
方式:將用戶數(shù)據(jù)存儲在伺服端。
特點:asp.net中可以設(shè)置session的存儲方式、位置、SessionID的保存是否依賴cookie。
   可以直接存儲對象。
缺點:asp.net中有失效的隱患
有效期:用戶活動時間+自定義延遲。
適用數(shù)據(jù):用戶的特有信息。
適用范圍:單個用戶、整個站點所有頁面。
用法:Session["CollectionName"] = value/object;

6. Cache
方式:將用戶數(shù)據(jù)存儲在伺服端數(shù)據(jù)緩存中。
特點:可以大大提高效率。 可以直接存儲對象。
缺點:數(shù)據(jù)更新不及時。
有效期:應(yīng)用程序生命周期或自定義。
適用數(shù)據(jù):所有頁面、所有用戶都可以共享的數(shù)據(jù)。
用法:Cache["CollectionName"] = value|object;

7. Appliction
方式: 將數(shù)據(jù)存儲于此,相當(dāng)于全局變量。
特點:可以直接存儲對象。整個站點的共享數(shù)據(jù)。
有效期:應(yīng)用程序生命周期。
適用數(shù)據(jù):所有頁面、所有用戶共享的數(shù)據(jù)。
用法:Appliction["CollectionName"] = value|object;

8. ViewState
方式:asp.net特有機制,用來恢復(fù)頁面狀態(tài)。
特點:將頁面各控件及其所存數(shù)據(jù)序列化存在name為_ViewState的隱藏域中。
缺點:存在HTML中,安全性較低??梢栽O(shè)置加密和驗證,但數(shù)據(jù)量會大增、效率有影響。
適用數(shù)據(jù):頁面PostBack需要保存的數(shù)據(jù),數(shù)據(jù)太大會影響頁面發(fā)送效率。
適用范圍:頁面自身數(shù)據(jù)保存。
用法:ViewState["CollectionName"] = value;

9. Static
方式: 將數(shù)據(jù)存于靜態(tài)變量中。
特點:利于提高效率。
缺點:若用不好會致使用戶或頁面間數(shù)據(jù)紊亂,造成極大的隱患。建議只賦值一次,絕對禁止為單個用戶而更改此值。
適用數(shù)據(jù):所有用戶共享的數(shù)據(jù)。
適用范圍:此類所有的頁面實例。
用法:在class中聲明靜態(tài)變量。
整理:
頁面自身保存數(shù)據(jù)可用的有ViewState,static變量。
頁面之間傳遞數(shù)據(jù)常用get,post,HttpContext,當(dāng)然可以變通一下用于自身數(shù)據(jù)保存。
單用戶的所有頁面數(shù)據(jù)共享常用session,cookie,當(dāng)然也可以應(yīng)用在以上兩種情況。
整個應(yīng)用程序(所有用戶所用頁面)的數(shù)據(jù)共享常用Appliction,cache,static變量。

總結(jié):   
當(dāng)然可以變通下靈活應(yīng)用來解決問題,但是要選擇合適的,常見到濫用Get和Session。
建議在用Request的時候要指明所取的集合,比如Get方法傳來的參數(shù)從QueryString集合取,Post的從Form取,cookie從Cookies里取。雖然用Request[]集合,以上幾種都可以取到,但是卻造成性能上的浪費,本來直接在Form集合中,卻遍歷了QueryString,Form,Cookies等集合才取出來。

ps:在計算機的世界里,凡是提供服務(wù)的一方我們稱為伺服端(server),而接受服務(wù)的另一方我們稱作客戶端(client)。

相關(guān)文章

  • asp.net 預(yù)防SQL注入攻擊之我見

    asp.net 預(yù)防SQL注入攻擊之我見

    說起防止SQL注入攻擊,感覺很郁悶,這么多年了大家一直在討論,也一直在爭論,可是到了現(xiàn)在似乎還是沒有定論。當(dāng)不知道注入原理的時候會覺得很神奇,怎么就被注入了呢?會覺得很難預(yù)防。但是當(dāng)知道了注入原理之后預(yù)防不就是很簡單的事情了嗎?
    2009-11-11
  • Asp.net core中實現(xiàn)自動更新的Option的方法示例

    Asp.net core中實現(xiàn)自動更新的Option的方法示例

    這篇文章主要介紹了Asp.net core中實現(xiàn)自動更新的Option的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 寫一個含數(shù)字,拼音,漢字的驗證碼生成類

    寫一個含數(shù)字,拼音,漢字的驗證碼生成類

    本文和大家分享的是一個集成1:小寫拼音;2:大寫拼音;3:數(shù)字;4:漢字的驗證碼生成類。本章例子也會有一個mvc使用驗證碼校驗的場景。具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • asp.net訪問Access數(shù)據(jù)庫溢出錯誤

    asp.net訪問Access數(shù)據(jù)庫溢出錯誤

    asp.net訪問Access數(shù)據(jù)庫溢出錯誤,大家會的幫忙解決下啊。
    2009-07-07
  • Request.QueryString與一般NameValueCollection的區(qū)別

    Request.QueryString與一般NameValueCollection的區(qū)別

    最近在做一個搜索程序的優(yōu)化改進,將搜索結(jié)果按照查詢的參數(shù)不同進行緩存。緩存的Key很自然的就想到了用查詢字符串,而獲取查詢字符串的最簡單方式是通過Request.QueryString.ToString()方法
    2011-12-12
  • Asp.Net Core用NLog記錄日志操作方法

    Asp.Net Core用NLog記錄日志操作方法

    在本篇文章里小編給大家整理的是一篇關(guān)于Asp.Net Core用NLog記錄日志操作方法以及相關(guān)知識點,需要的朋友們可以學(xué)習(xí)下。
    2019-10-10
  • .Net Core限流的實現(xiàn)示例

    .Net Core限流的實現(xiàn)示例

    限流能夠很好的控制住一個客戶端訪問服務(wù)器資源地址的請求次數(shù),本文主要介紹了.Net Core限流的實現(xiàn)示例,感興趣的可以了解一下
    2021-07-07
  • ASP.NET MVC運行出現(xiàn)Uncaught TypeError: Cannot set property __MVC_FormValidation of null的解決方法

    ASP.NET MVC運行出現(xiàn)Uncaught TypeError: Cannot set property __MVC

    同一相站點,有些頁面的客戶端驗證能工作,而有些死活不行。打開頁面就出現(xiàn)Uncaught TypeError: Cannot set property __MVC_FormValidation of null錯誤
    2010-04-04
  • 基于asp.net MVC 應(yīng)用程序的生命周期(詳解)

    基于asp.net MVC 應(yīng)用程序的生命周期(詳解)

    下面小編就為大家分享一篇基于asp.net MVC 應(yīng)用程序的生命周期詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12

最新評論