我正在使用asp.net通过Visual Basic处理Login session
。当会话超时完成并且我点击另一个不同的页面时,它会给我一个错误,"对象引用未设置为对象的实例。" SessionState模式=" InProc"
这是我用于会话的代码:
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 :(得分:0)
If Session("Username") IsNot Nothing Then
Label1.Text = "Welcome, " & Session("Username").ToString()
Else
Response.Redirect("~/Default.aspx")
End If
在引用之前,您需要检查它是否为空。你正在做相反的事情。您正在检查它是否为空,验证它是否为,然后引用它。这就是你获得NullReferenceException
的原因。基本上所有空引用异常都是相同的,您尝试对空的对象执行操作。
答案 1 :(得分: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
全部:=)
干杯