2013-04-06 3 views
1

Предположим, у меня есть 2 страницы 'A' и 'B'. я установить переменную сеанса в «A», который проверяется в функции page_load в странице «B» с помощью:ошибка переменной session asp.net

if (!string.IsNullOrEmpty(Session["x"].ToString())) 
{ 
} 

и соответствующие действия выполняются на основе значения этой переменной сеанса, но если открыть страницу " B ', это дает ошибку:

Как установить экземпляр этого объекта заранее?

ответ

1

Вы получаете исключение, прежде чем IsNullOrEmpty приходит к действию, и оценивается параметр, переданный в IsNullOrEmpty. Вы получите исключение. Вызвав ToString() по адресу Session["x"], если Session["x"] имеет значение NULL. Таким образом, вы получите исключение до того, как будет сделан вызов IsNullOrEmpty.

Изменить

if (!string.IsNullOrEmpty(Session["x"].ToString())) {} 

To 

if(Session["x"] != null && Session["x"].ToString() != string.Empty) {} 
1

Вы используете Session["x"].ToString() когда SessionX равна нулю, поэтому вы получаете null exception Таким образом, вы должны проверить, что Session["x"] не должно быть null

if(Session["x"] != null) 
{ 
    // your code 
} 
Смежные вопросы