我在代码文件中有一个包含以下vb代码的母版页...
Public Sub Page_Load(ByVal Sender As Object, ByVal E As EventArgs)
If Not IsPostBack Then
If Session("key") Is Nothing Then
Session("key") = 0
Else
Session("key") = Session("key") + 1
End If
Response.write(Session("key"))
LoadData()
End If
End Sub
这应该在每个页面的顶部写一个数字,说明访问了多少页面......但它始终保持为零。
任何想法??
答案 0 :(得分:2)
我已经测试了这个,它在我的机器上工作正常。
确保您的会话超时已设置,否则它将过期,导致Session("key")
每Page_Load
尝试将以下内容添加到您的web.config中:
<configuration>
<system.web>
<sessionState timeout="120" />
</system.web>
</configuration>
答案 1 :(得分:2)
请务必在母版页中搜索您的代码并包含任何Session.Abandon()
我在一段时间后遇到了这个问题,并没有意识到另一个开发人员已经把它放进去了。
答案 2 :(得分:0)
刚刚出头:
其他变量的会话状态是否正常工作?你能说Session("A") = "ABC"
并从另一个页面中检索该值吗?
会话返回的任何内容都是object类型 - 您可能需要将其强制转换,例如Session("Key") = (Session("Key") As Int) + 1
。
LOL C#:Session["Key"] = ((int)Session["Key"]) + 1;
- 我正盯着忘记VB!哈!