在我的C#代碼隱藏文件(.cs)中,我只有一個類,它是從System.Web.UI.Page派生的。該類包含字典數組。在按鈕點擊之一中,即在按鈕點擊事件處理函數中,我創建該類的對象並執行一些操作。現在,在另一個按鈕上單擊,我需要做其他事情,這需要屬於在上一次按鈕單擊時創建的類的對象或實例的數據。我怎樣才能做到這一點?我需要所有數據,尤其是屬於該對象/類實例的字典數組。C#:如何使類變量持久
-4
A
回答
3
HTTP是無狀態的。所以沒有直接的方法來做到這一點。
你可以做的是保存在一些存儲機制,並在稍後訪問它。您可以考慮DB table
,Session
等等
下面是一個例子,Session
來存儲你可以訪問此在接下來的按鈕單擊事件這樣
if(Session["ThatObject"]!=null)
{
YourClass object1=(YourClass) Session["ThatObject"];
//now you can access object1 properties here.
}
它在會話中存儲這麼多項目並不是一個好主意,因爲它會使服務器在會話存儲在服務器中時哭泣。
1
您可以使用靜態聲明,以便它在請求中保持不變。
static IDictionary<string,object> myPersistentDict;
當然,你必須擔心這種方法的線程安全。如果您使用.NET 4中,有一個內置在爲您處理此字典類,ConcurrentDictionary
static ConcurrentDictionary<string, object> myPersistentDict;
相關問題
- 1. 持久化類變量
- 2. 軌持久化類變量
- 3. Django:使變量持久
- 4. 量角器持久變量
- 5. Asp.Net/C#靜態變量持久性
- 6. c中的持久局部變量
- 7. 如何在Rails中跨頁加載持久化Ruby類變量?
- 8. PowerShell中的持久變量
- 9. PHP變量持久性
- 10. iframe上的持久變量?
- 11. PHP:持久變量值
- 12. Automator變量是否持久?
- 13. nodeJS中的持久變量
- 14. jquery中的持久變量
- 15. 持久的Makefile變量
- 16. 動態持久變量
- 17. 如何更新變量並使其在Java中保持持久性?
- 18. 如何使一個變量永久固定在C#中?
- 19. 類不持久?
- 20. 持久HTTP GET變量是在PHP
- 21. Apache mod_wsgi python變量持久性
- 22. wp7中的持久全局變量
- 23. OpenGL統一變量持久性
- 24. rails中的持久實例變量3
- 25. 變量內容不是持久的
- 26. Dask工作者持久變量
- 27. 通過Ruby持久化環境變量
- 28. 調用一個持久化包變量
- 29. 會話持久性的變量包裝
- 30. JavaScript初始變量和持久性
謝謝Shyju。這工作完美。但是現在我面臨着另一個問題。在第一個按鈕點擊,我基本上動態地創建一個html表。該表格也包含一些複選框。現在一旦表格被渲染,用戶可以選擇其中一個或多個複選框。問題是,在頁面重新加載之後,即在點擊第二個按鈕之後,我無法確定設置了哪個複選框。這是因爲在渲染表格後,我將類變量存儲在會話中。因此,在會話變量中,所有複選框始終處於未選中狀態。任何解決方案我怎樣才能存儲這些複選框的狀態呢? – user1465266
@ user1465266您可以使用ajax創建服務器頁面並更新存儲器中的值(Session變量) – Shyju
所以,您的意思是我需要使用ajax來更新存儲在我的會話變量中的值?對不起,但我對.net和其他網絡技術很陌生。你能否詳細說明一下?謝謝... – user1465266