Мои общие переменные потеряют значение? (asp.net vb) - PullRequest
1 голос
/ 16 марта 2010

У меня есть класс include.vb, который содержит некоторые переменные (делятся ими с другими страницами), например:

Public Shared pageid As Integer = 0

У меня есть функция, которая работает с этими переменными, возвращая их со значениями;

Return pageid

Когда я выполняю код, переменные имеют значения (при пошаговом выполнении функции), но когда они возвращаются на страницу, они возвращаются с нулем.

Они теряют ценность при каждой загрузке страницы? Можете ли вы предложить альтернативный метод?

Большое спасибо.

Ответы [ 2 ]

2 голосов
/ 16 марта 2010

Вы должны использовать, вероятно, переменные сеанса.

Session("PageID") = 0

и доступ к нему каждый раз, когда вам нужно.

Не рекомендуется, но если вы хотите быть еще строже, вы можете использовать определенную переменную приложения для каждого сеанса, чтобы, если пользователь вернется на веб-сайт через день, он все равно не потерян (если вы этого не сделали сделал iisreset).

Чтобы преодолеть iisreset, это будет еще большим излишним, вы можете сохранить значение в файл / БД и извлекать его каждый раз, когда захотите. (Пожалуйста, не делай этого !!)

Может быть, это может объяснить дальше: http://codeforeternity.com/blogs/technology/archive/2007/12/19/handling-asp-net-session-variables-efficiently.aspx

2 голосов
/ 16 марта 2010

Не очень хорошая идея использовать общие переменные в веб-проектах: во-первых, каждый раз, когда вы выполняете «iisreset» или перезапускаете пул приложений, эти переменные сбрасываются. Далее, эти переменные не для пользователя, а для процесса, и (я полагаю) не гарантированно безопасны для потоков, поэтому один поток может изменить значение переменной, а другой - сбросить значение на что-то другое.

Судя по названию переменной "PageID", я думаю, что вы пытаетесь отследить последнюю страницу, которую посетил пользователь. Если это так, то область видимости переменной сеанса - лучшее решение для вас. Смотрите учебник здесь: http://msdn.microsoft.com/en-us/library/ms178581.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...