日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ASP.NET多种不同页面间数据传递的方法

發布時間:2024/4/14 asp.net 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET多种不同页面间数据传递的方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. Get(即使用QueryString顯式傳遞)
???? 方式:在url后面跟參數。
???? 特點:簡單、方便。
???? 缺點:字符串長度最長為255個字符;數據泄漏在url中。
???? 適用數據:簡單、少量、關鍵的數據。
???? 適用范圍:傳遞給自己、傳遞給另一個目標頁面;常用于2個頁面間傳遞數據。
???? 用法:例如:url后加?UserID=…,跳轉到目標頁面,目標頁面在伺服端可用Request.QueryString["InputText"]獲取其指定參數值。
2. Post
???? 方式:通用的方式。利用form提交。
???? 特點:最常用的方法。常用技巧是把隱秘的數據存在隱藏域中由form提交。
???? 適用數據:大量數據,包括文件上傳。
???? 適用范圍:同Get方法
???? 用法:在客戶端form指定action目標后submit、在asp.net的伺服端中使用server.Transfer(url)提交;在伺服端中用Request.Form["FormFieldID"]獲取。
3. 頁面對象的屬性
???? 方式:asp.net特有方式 。利用HttpContext獲取發請求的頁面的信息。
???? 特點:可以直接存儲對象。
???? 缺點:注意強制轉換的類型要正確。
???? 適用數據:各種數據。
???? 適用范圍:頁面之間傳遞復雜數據。
???? 用法:獲取Context.Handler將其轉換為發請求的頁面的實例,隨后就可以輕松訪問其form中的字段、甚至屬性。其中的Context是指HttpContext對象,Handler是其屬性,Context.Handler的意思可以理解為創建源頁類的實例變量,而得到此實例之后,就可以直接訪問其中的屬性和Public方法了。
4. cookie
???? 方式:將數據存在客戶端的經典方法。
???? 缺點:安全性低、受客戶端設置限制、一個站點僅存20個cookie,每個容量4096字節。
???? 有效期:自定義或被用戶清除
???? 適用數據:用戶的會話數據(一般是用戶名,用戶的個性化設置信息等)
???? 適用范圍:單個用戶、整個站點所有頁面
???? 用法:引用Request.Cookies(讀取信息)、Response.Cookies(寫入信息)、或用HttpCookieCollection直接創建Cookie對象。
5. Session
???? 方式:將用戶數據存儲在伺服端。
???? 特點:asp.net中可以設置session的存儲方式、位置、SessionID的保存是否依賴cookie。
???????????? 可以直接存儲對象。?
???? 缺點:asp.net中有失效的隱患
???? 有效期:用戶活動時間+自定義延遲。
???? 適用數據:用戶的特有信息。
???? 適用范圍:單個用戶、整個站點所有頁面。
???? 用法:Session["CollectionName"] = value/object;
6. Cache
???? 方式:將用戶數據存儲在伺服端數據緩存中。?
???? 特點:可以大大提高效率。 可以直接存儲對象。
???? 缺點:數據更新不及時。
???? 有效期:應用程序生命周期或自定義。
???? 適用數據:所有頁面、所有用戶都可以共享的數據。
???? 用法:Cache["CollectionName"] = value|object;

http://www.cnblogs.com/sosoft/

7. Appliction
???? 方式: 將數據存儲于此,相當于全局變量。?
???? 特點:可以直接存儲對象。整個站點的共享數據。
???? 有效期:應用程序生命周期。
???? 適用數據:所有頁面、所有用戶共享的數據。
???? 用法:Appliction["CollectionName"] = value|object;
8. ViewState
???? 方式:asp.net特有機制,用來恢復頁面狀態。?
???? 特點:將頁面各控件及其所存數據序列化存在name為_ViewState的隱藏域中。
???? 缺點:存在HTML中,安全性較低??梢栽O置加密和驗證,但數據量會大增、效率有影響。
???? 適用數據:頁面PostBack需要保存的數據,數據太大會影響頁面發送效率。
???? 適用范圍:頁面自身數據保存。
???? 用法:ViewState["CollectionName"] = value;
9. Static
???? 方式: 將數據存于靜態變量中。?
???? 特點:利于提高效率。
???? 缺點:若用不好會致使用戶或頁面間數據紊亂,造成極大的隱患。建議只賦值一次,絕對禁止為單個用戶而更改此值。
???? 適用數據:所有用戶共享的數據。
???? 適用范圍:此類所有的頁面實例。
???? 用法:在class中聲明靜態變量。
整理:
???? 頁面自身保存數據可用的有ViewState,static變量。
???? 頁面之間傳遞數據常用get,post,HttpContext,當然可以變通一下用于自身數據保存。
???? 單用戶的所有頁面數據共享常用session,cookie,當然也可以應用在以上兩種情況。
???? 整個應用程序(所有用戶所用頁面)的數據共享常用Appliction,cache,static變量。?
總結:????
???? 當然可以變通下靈活應用來解決問題,但是要選擇合適的,常見到濫用Get和Session。
???? 建議在用Request的時候要指明所取的集合,比如Get方法傳來的參數從QueryString集合取,Post的從Form取,cookie從Cookies里取。雖然用Request[]集合,以上幾種都可以取到,但是卻造成性能上的浪費,本來直接在Form集合中,卻遍歷了QueryString,Form,Cookies等集合才取出來。
ps:在計算機的世界里,凡是提供服務的一方我們稱為伺服端(server),而接受服務的另一方我們稱作客戶端(client)。

轉載于:https://www.cnblogs.com/sosoft/p/3534430.html

總結

以上是生活随笔為你收集整理的ASP.NET多种不同页面间数据传递的方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。