ASP.NET中有哪些頁面間數(shù)據(jù)傳遞的方法,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
從事成都托管服務(wù)器,服務(wù)器租用,云主機(jī),虛擬空間,域名申請(qǐng),CDN,網(wǎng)絡(luò)代維等服務(wù)。
ASP.NET頁面間數(shù)據(jù)傳遞有幾種方法
遇到一個(gè)重要的問題是如何保證數(shù)據(jù)在頁面間進(jìn)行正確、安全和高效地傳送,Asp.net提供了狀態(tài)管理等多種技術(shù)來解決保存和傳遞數(shù)據(jù)問題,以下來探討.NET下的解決此問題的各種方法和各自的適用場合。
1、ASP.NET頁面間數(shù)據(jù)傳遞的各種方法和分析
1.1使用Querystring方法
QueryString也叫查詢字符串,這種方法將要傳遞的數(shù)據(jù)附加在網(wǎng)頁地址(URL)后面進(jìn)行傳遞。如頁面A.aspx跳轉(zhuǎn)到頁面B.aspx,可以用Request.Redirect("B.aspx?參數(shù)名稱=參數(shù)值")方法,也可以用超鏈接:,頁面跳轉(zhuǎn)后,在目標(biāo)頁面中可用Ruquest["參數(shù)名稱"]來接收參數(shù)。使用QuerySting方法的優(yōu)點(diǎn)是實(shí)現(xiàn)簡單,不使用 雙擊代碼全選 1 PreviousPagepg1;2pg1=(PreviousPage)Context.Handler;3Response.Write(pg1.Name); 說明:此段代碼用在目標(biāo)頁面中取出傳遞的值,Previous-Page是原頁面的類名,Name是在原頁面定義的屬性,需要傳遞的數(shù)據(jù)存入到此屬性中。 使用這種方法,需要寫一些代碼以創(chuàng)建一些屬性以便可以在另一個(gè)頁面訪問它,可以在另一個(gè)頁面以對(duì)象屬性的方式來存取數(shù)值,這個(gè)方法在頁面間值傳遞中是特別有用的,這種方法不但簡潔,同時(shí)又是面向?qū)ο蟮摹?/p> 1.9Cache Cache具有強(qiáng)大的數(shù)據(jù)操作功能,以鍵值對(duì)集合的形式存儲(chǔ)數(shù)據(jù),可以通過指定關(guān)鍵字來插入和檢索數(shù)據(jù)項(xiàng)。它的基于依賴性的終止功能,使它能夠精確控制如何并及時(shí)更新和消除緩存中的數(shù)據(jù)。它可以內(nèi)部進(jìn)行鎖定管理,不需要象Application對(duì)象那樣使用Lock()和Unlock()方法進(jìn)行串行化管理。缺點(diǎn)是使用方法較復(fù)雜,使用不當(dāng)反而降低性能. 2、不同頁面跳轉(zhuǎn)情況下可采用的傳值方法 2.1情況一:源頁面可以跳轉(zhuǎn)到目標(biāo)頁面,源頁面?zhèn)鬟f數(shù)據(jù)給目標(biāo)頁面 使用查詢字符串,將少量信息從一頁傳輸?shù)搅硪豁撘约安淮嬖诎踩詥栴}時(shí),是一個(gè)簡單常用的方法;使用Server.Transfer方法,可傳遞表單數(shù)據(jù)或查詢字符串到另一個(gè)頁面,還可以保存初始頁的HttpContext,當(dāng)目標(biāo)頁和源頁面在同一個(gè)服務(wù)器時(shí),可以用此方法。 2.2情況二:頁面?zhèn)鬟f數(shù)值給自身頁面 即在對(duì)同一頁的多個(gè)請(qǐng)求間保留值,ViewState屬性可提供具有基本安全性的功能。也可用隱藏域,存儲(chǔ)少量回發(fā)到自身或另一頁的頁信息時(shí)使用,不考慮安全性問題時(shí)使用。 2.3情況三:源頁面?zhèn)鬟f數(shù)值給目標(biāo)頁面,而源頁面不能直接連接到目標(biāo)頁面。 有多個(gè)方法,具體用哪個(gè)要看具體情況。 Application:存儲(chǔ)由多個(gè)用戶使用且更改不頻繁的全局信息,此時(shí)安全性不成為問題。不要存儲(chǔ)大量的信息。Session:存儲(chǔ)特定于單獨(dú)會(huì)話的短期信息,并且需要較高的安全性。不要在會(huì)話狀態(tài)中存儲(chǔ)大量的信息。需要注意,將為應(yīng)用程序中每一會(huì)話的生存期創(chuàng)建并維護(hù)會(huì)話狀態(tài)對(duì)象。在支持許多用戶的應(yīng)用程序中,這可能會(huì)占用大量服務(wù)器資源并影響可縮放性。 Cookie:當(dāng)您需要在客戶端存儲(chǔ)少量信息以及不存在安全性問題時(shí)使用。類的靜態(tài)屬性,方便傳送多個(gè)數(shù)據(jù)。 Cache:對(duì)象用于單個(gè)用戶、一組用戶或所有的用戶??梢詾槎鄠€(gè)請(qǐng)求長時(shí)間、高效率的保存數(shù)據(jù)。上述幾個(gè)方法,不僅用于情況三,前面兩種情況都可以使用,只是沒有必要時(shí)盡量少用,否則會(huì)造成資源浪費(fèi)或增加程序的復(fù)雜性。 看完上述內(nèi)容,你們掌握ASP.NET中有哪些頁面間數(shù)據(jù)傳遞的方法的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
本文題目:ASP.NET中有哪些頁面間數(shù)據(jù)傳遞的方法
網(wǎng)頁URL:http://weahome.cn/article/jgeooh.html