#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");
}