Значение сеанса всегда равно нулю - PullRequest
0 голосов
/ 10 июня 2019

Это проект ASP.NET MVC.Я пытаюсь получить значение из сеанса, и он всегда возвращает ноль.

Методы SaveToSession & GetFromSession находятся в отдельном вспомогательном классе.При нажатии кнопки отправки выполняется вызов метода контроллера и, в свою очередь, вспомогательного метода для сохранения данных в сеансе.

Другой щелчок тега привязки (который имеет путь к контроллеру) попадет в тот же контроллеркоторый вызывает вспомогательный метод для извлечения данных из сеанса.Здесь данные всегда равны нулю.

Это методы из моего вспомогательного класса

public static void SaveDataInSession(string sessionName, IEnumerable<Item> lstData)
{
    System.Web.HttpContext.Current.Session[sessionName] = lstData;            
}

public static void GetDataFromSession(string sessionName, out IEnumerable<Item> lstData)
{
    lstData = null;

    var test = System.Web.HttpContext.Current.Session; //This session has a new SessionID and hence does not have the data.

    if (System.Web.HttpContext.Current.Session[sessionName] != null)
    {
        // it never comes into this block
    }
}

Во время отладки я вижу, что данные сохраняются в сеансе, как я вижуимя сеанса в списке ключей.

Тот же код отлично работал в другом проекте ASP.NET MVC.Я проверил файл web.config этого проекта, если были какие-либо записи, связанные с сеансом, и их не было.

ОБНОВЛЕНИЕ : я заметил, что при сохранении данных сгенерированный идентификатор сеансаотличается и при получении данных, у него есть другой идентификатор.Я думаю, что это может быть причиной, но почему это создает новые идентификаторы сессии, когда я даже не обновляю страницу.Что можно сделать, чтобы это исправить.

Версия System.Web.Mvc - 5.2.3.0

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