dpp*_*dpp 6 .net vb.net asp.net session
我遇到有关会话项目的问题.在我使用它们之前,我想检查它们是否存在,但使用此代码会给我错误:
If (Session("SomeSessionItem") Is Nothing) Then
...
End If
Run Code Online (Sandbox Code Playgroud)
这是错误:
你调用的对象是空的.
我想Session("SomeSessionItem")尝试获取会话项的价值.如果该项不存在则抛出异常.但在使用会话项之前如何检查会话项是否存在?
Home.aspx.Home.aspx.vb,我实例化一个WebUserControl SomeControl.ascx.请注意,在Home.aspx.vb事件处理程序中,Page_Load我可以使用条件来检查会话而不会出现异常.SomeControl.ascx.vb我试图访问会话时,这里是异常发生的地方.aba*_*hev 10
那对你有用吗?
If (Session IsNot Nothing)
Dim item as Object = Session("SomeSessionItem")
If (item IsNot Nothing)
...
End If
End If
Run Code Online (Sandbox Code Playgroud)
此外,您可能需要检查HttpContext.Current.Session而不是简单地检查Session是否看到以下错误:
会话在此上下文中不存在
如果您尝试在创建会话对象本身之前使用会话,您会收到此行为。请注意,Session 对象并非在请求过程中始终可用。您可以检查 Session 本身是否为 Nothing。
它保证在事件触发后创建,您Session_Start可以在 global.asax 中检查。
如果您的代码在页面的代码隐藏内运行,则在某些情况下会话状态尚不可用。但是,在 Page_Load 中它是可用的,请检查那里。
最后:当.EnableSessionstate="false"为页面或应用程序范围设置 时,您无法访问会话对象。
也许你的意思不是If (Session("SomeSessionItem") Is Nothing) Then下面的?
If (Session("SomeSessionItem") IsNot Nothing) Then
'... do someting, i.e.:'
Dim sessionItem As String = CType(Session("SomeSessionItem"), String)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29291 次 |
| 最近记录: |