Проблемы при попытке извлечь значение из списка массивов, хранящегося в сеансе

#asp.net

#asp.net

Вопрос:

Пожалуйста, помогите мне. Вот мой код

 ArrayList arrValues = new ArrayList();
arrValues = (ArrayList)Session["ArrValues"];

string CustName, Addr1, Addr2, City, State, Country, Pin, Email,Order,CustToken;
string SName, SAddr1, SAddr2, SCity, SState,SPin, SCountry;         

CustName = arrValues[1].ToString().Trim();
  

При попытке получить значение CustName из списка массивов, хранящегося в сеансе, выполняется «исключение нулевой ссылки». Ниже приведена ссылка для просмотра видео

http://www.talash.com/testingvideo/2011-03-18_0958_Payment_Gateway_Problem.swf

Комментарии:

1. Не следует инициализировать новый список массивов с помощью ArrayList arrValues = new ArrayList(); . Вы не избежите исключения NullReferenceException, когда ваше значение session равно null, но вы вызываете путаницу с этим кодом.

Ответ №1:

Проблема в том, что ваша переменная сеанса не существует. arrValues равно null. Вам нужно разобраться, почему вы теряете свою переменную сеанса.

Вы пытаетесь получить это значение изнутри страницы или модуля? Если вы работаете с HttpModule, сеанс доступен не всегда, и может случиться так, что объект сеанса равен null.

Ответ №2:

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

 if(Session[Arrvalues"]!=null)
{

    //your block of code//

 }
else
 {
    Response.Redirect("to_the_page_where_this_session_variable_is_set.aspx");


  }