VB.net会话变量计数器没有添加

时间:2012-02-24 14:55:59

标签: asp.net vb.net session-variables

我在代码文件中有一个包含以下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

这应该在每个页面的顶部写一个数字,说明访问了多少页面......但它始终保持为零。

任何想法??

3 个答案:

答案 0 :(得分:2)

我已经测试了这个,它在我的机器上工作正常。

确保您的会话超时已设置,否则它将过期,导致Session("key")Page_Load

设置为0

尝试将以下内容添加到您的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!哈!