我需要從會話變量中讀取值。讀取會話變量並在讀取值後將其刪除
如果會話變量存在,我想在讀取值後刪除它。
要閱讀會話變量我嘗試以下選項:
String session1 = context.Session["test"] as String;
var session2 = context.Session["test"];
第一個給我空,第二個我的預期值。
爲什麼?
我應該如何讀取會話變量,檢查是否存在以及是否讀取了值並刪除會話變量?
謝謝你, 米格爾
我需要從會話變量中讀取值。讀取會話變量並在讀取值後將其刪除
如果會話變量存在,我想在讀取值後刪除它。
要閱讀會話變量我嘗試以下選項:
String session1 = context.Session["test"] as String;
var session2 = context.Session["test"];
第一個給我空,第二個我的預期值。
爲什麼?
我應該如何讀取會話變量,檢查是否存在以及是否讀取了值並刪除會話變量?
謝謝你, 米格爾
檢查是否會話值存在時,讀出的值,然後將其刪除,就像這樣:
if(context.Session["test"] != null)
{
// Read value
string sessionValue = context.Session["test"].ToString();
// Delete value from session
context.Session.Remove("test");
}
使用??
避免空值
String session1 = context.Session["test"] as String ?? String.Empty;
但是如果我想在刪除它之後不需要檢查它是否存在? –
butt這不會刪除會話變量 –
如果你想刪除它後...只是做它context.Session.Remove(「測試」); –
第一個給你null,因爲Session [「test」]中的任何內容都不是一個字符串,所以「as」返回null。 – aquinas
執行會話變量的數據類型是什麼?它是一個字符串嗎?如果沒有,那可能是你的問題。請參閱[documentation](http://scspfprd01/IT/APPDEV/DN/_layouts/15/start.aspx#/):「as運算符就像是一個強制操作,但如果轉換不可行,則爲返回null而不是引發異常。「 – David
這可能有所幫助。 http://blog.nerdbank.net/2008/06/when-not-to-use-c-keyword.html – David