Передайте ASP. NET Session на jQuery - PullRequest
2 голосов
/ 07 апреля 2020

Я использую asp. net, vb. net и jquery. Мне нужно посмотреть, существует ли моя сессия в jQuery. Я знаю, что не могу работать с сеансами в jQuery, так как JavaScript на стороне клиента, а сеансы на стороне сервера. Итак, я подумал, что обходным путем может быть сохранение информации о сеансе в метке.

Вот то, что я пытаюсь, это не совсем работает:

Итак, на Page_Load я установил текстовое поле to session (что равно «True», когда сеанс существует): LblSession.Text = Session("MySession")

Также на Page_Load, если сессия истекает (установлено 15 минут), тогда я хочу, чтобы метка обновляла сеанс как нулевой / false.

If Not Session("MySession") Then LblSession.Text = Session("MySession")

Однако, когда мой сеанс заканчивается, эта метка не обновляется, если сеанс существует или нет.

На моем jQuery я получаю значение сеанс (если он существует, это правда, в противном случае, это ложь или ноль): var mySession = $("#LblSession").text();

//Check to see if the session is true
if (mySession == "True") {
    'do something if session exists'
} else {
    'do something if session does not exist'
}

Это моя конечная цель, чтобы иметь возможность увидеть, существует ли сеанс или истек ли он из моего jQuery.

1 Ответ

0 голосов
/ 07 апреля 2020

Ваш Javascript вызов ID тега html может быть неправильным, проверьте, существует ли контроль идентификатора:

<asp:Label runat="server" ID="LblSession"></asp:Label>
// render as:
<span id="Msg"></span>
$("#LblSession").text();

Проверьте конфигурацию web.config, значение тега clientIDMode, идентификатор зависит от этих настроек и структуры страницы, например, если у вас есть мастер-страницы и элементы управления контейнером. Проверьте сгенерированный код html, чтобы получить тег идентификатора клиента отображаемого элемента управления html.

<pages clientIDMode="Predictable"></pages>

Дополнительная информация: (https://docs.microsoft.com/en-us/dotnet/api/system.web.ui.control.clientidmode?view=netframework-4.8)

Лучше использовать скрытое поле, визуализировать как скрытый ввод: (https://docs.microsoft.com/en-us/dotnet/api/system.web.ui.webcontrols.hiddenfield?view=netframework-4.8)

<asp:HiddenField id="HiddenField1" runat="server" value="1"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...