2016-04-05 2 views
0

Я пытаюсь сохранить объект типа «Человек» в переменной сеанса. Переменная Session хранится так:Переменные сеанса ASP.NET MVC не работают - осталось как null

public void SelectPerson(int ID) 
    { 
     Person person = db.People.Where(p => p.ID == ID).FirstOrDefault(); 

     Session["PersonID"] = ID; 
     Session["Person"] = person; 
    } 

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

Person person = (Person) Session["Person"]; 

Я не знаю, почему это ISN Не работаем. У кого-нибудь есть идеи? Спасибо за вашу помощь.

+0

В зависимости от реализации класса Person может произойти сбой каста, поэтому возвращаемые данные равны нулю. – Bardo

+0

Включен ли сеанс в вашей конфигурации? – Paddy

+0

@ Бардо Не могли бы вы уточнить? Переменная сеанса, хранящая идентификатор, была тестом, и хотя идентификатор имеет значение, переменная сеанса остается пустой. – James

ответ

-1

Пожалуйста, проверьте, что это значение, которое вы получаете от этой линии: Person person = db.People.Where(p => p.ID == ID).FirstOrDefault();

Попробуйте написать:

Response.Write (человек);

После того, как вы попробовали то, что я здесь написал, скажите мне значение, которое он пишет.

+0

Где именно это будет написано к? – James

+0

Вместо ответа на response.write, просто запустите отладчик и посмотрите, какой результат. – Paddy

+0

@JamesLloyd Он дал еще один вариант выше. Мы просто хотим узнать, какое значение вы получаете от 'person'. Вы также можете создать простую таблицу и задать свой текст для значения 'person'. –

Смежные вопросы