Счетчик переменных сеанса VB.net не добавляется - PullRequest
3 голосов
/ 24 февраля 2012

У меня есть главная страница со следующим кодом 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 ]

2 голосов
/ 24 февраля 2012

Я проверил это, и он отлично работает на моей машине.

Убедитесь, что тайм-аут сеанса установлен, иначе он истечет, в результате чего Session("key") будет установлен в 0 каждые Page_Load

Попробуйте добавить следующее в ваш файл web.config:

<configuration>
<system.web>
<sessionState timeout="120" />
</system.web>
</configuration>
2 голосов
/ 24 февраля 2012

Обязательно поищите в своем коде на главной странице и странице, содержащей какие-либо данные, Session.Abandon()

. Я столкнулся с этой проблемой некоторое время назад и не догадывался, что это сделал другой разработчик.

0 голосов
/ 24 февраля 2012

Просто у меня в голове:

Правильно ли работают сеансовые состояния для других переменных?Можете ли вы сказать Session("A") = "ABC" и получить это значение с другой страницы?

Все, что возвращается из сеанса, имеет тип объекта - вам, возможно, придется его привести, например, Session("Key") = (Session("Key") As Int) + 1.

LOL C #:Session["Key"] = ((int)Session["Key"]) + 1; - Я начинаю забывать VB!Ха!

...