2013-04-06 120 views
1

假設我有2頁'A'和'B'。我設置的「A」一個會話變量,即在Page_Load中的功能被檢查頁面「B」使用:會話變量錯誤asp.net

if (!string.IsNullOrEmpty(Session["x"].ToString())) 
{ 
} 

和適當的行動是基於會話變量的值來進行,但如果我打開頁面「 B'首先,它給出錯誤:

Object reference not set to an instance of an object. 

如何預先設置此對象的實例本身?

回答

1

IsNullOrEmpty進入操作並且傳遞給IsNullOrEmpty的參數被評估之前,您會收到異常。如果Session["x"]爲空,您將通過Session["x"]調用ToString()來獲得例外。所以在撥打IsNullOrEmpty之前你會得到異常。

變化

if (!string.IsNullOrEmpty(Session["x"].ToString())) {} 

To 

if(Session["x"] != null && Session["x"].ToString() != string.Empty) {} 
1

您正在使用Session["x"].ToString()SessionX爲空,這就是爲什麼你得到null exception 所以,你應該檢查Session["x"]不應該null

if(Session["x"] != null) 
{ 
    // your code 
}