2017-10-17 70 views
1

設置會話有在ASP.NET 1.1的核心與哈希表數據類型

在web窗體與會話的問題,而不是在ASP.NET 1.1的核心,我使用會話

Hashtable data = new Hashtable(); 
Session.Add("ket", data); 

。現在我試圖在ASP.NET Core 1.1中創建它。但有

void ISession.Set(string key, byte[] value); 
void ISession.SetInt32(string key, int value); 
void ISession.SetString(string key, string value); 

如何設置使用哈希表數據類型的會話像

Hashtable data = new Hashtable(); 
HttpContext.Session.Set("key", data); 

在ASP.NET 1.1的核心是會話

只有三個方法?

+0

參見:https://andrewlock.net/an-introduction-to-session-storage-in-asp-net-core/ –

回答

4

含義Asp.net核心不支持在會話中存儲對象。或者爲了更正確,他們不會自動爲您再序列化對象。

在這種情況下,您可以將其序列化爲JSON並將其存儲爲字符串。

var _data = JsonConvert.SerializeObject(data); 
context.Session.SetString("key", _data); 

要檢索的哈希:

var _data = _context.Session.GetString("key"); 
Hashtable retrieveData = JsonConvert.DeserializeObject<Hashtable>(retrieveData); 
+0

謝謝你許多!!! :) – wallah

+0

@瓦拉你很受歡迎,希望它有助於:) – Jacky