2014-04-25 33 views
0

我正在使用asp.net通過Visual Basic編寫Login session。當會話超時完成時,我點擊另一個不同的頁面,它給我一個錯誤,「對象引用未設置爲對象的實例。」 SessionState的模式=「InProc方式」 這裏是我用於會話的代碼:您需要檢查,如果你引用它纔不爲空StateSession NullReference

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    If Session("Username") Is Nothing Then 
     Label1.Text = "Welcome, " & Session("Username").ToString() 
    End If 
End Sub 
+0

也並非一無是處,肯定? – StuartLC

+0

你是什麼意思? – Eva

+0

您正在檢查null,然後取消引用null.ToString()? – StuartLC

回答

0
If Session("Username") IsNot Nothing Then 
    Label1.Text = "Welcome, " & Session("Username").ToString() 
Else 
    Response.Redirect("~/Default.aspx") 
End If 

。你做的是相反的。您正在檢查它是否爲空,驗證它是否爲空,然後引用它。這就是爲什麼你得到一個NullReferenceException。基本上所有的空引用異常都是一樣的,你試圖對一個空對象執行操作。

+0

謝謝!這現在更有意義 – Eva

0

使用一個內置的功能,是你在尋找什麼:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
If Not IsNothing(Session("Username")) Then 
    Label1.Text = "Welcome, " & Session("Username").ToString() 
End If 
End Sub 

這就是:=)

乾杯