В экземпляре объекта не задана ссылка на объект

Когда я пытаюсь открыть страницу из своей IDE в VS 2008, используя опцию «ПРОСМОТР В БРАУЗЕРЕ», я получаю ссылку на объект, не установленную на экземпляр ошибки объекта.

Часть кода я получаю эту ошибку:

 XResult = Request.QueryString["res"];    
 TextBox1.Text = XResult.ToString();

person BumbleBee    schedule 04.03.2011    source источник


Ответы (6)


Проблема здесь в том, что XResult это null, и когда вы вызываете ToString, код создает NullReferenceException. Вам нужно учесть это, выполнив явную null проверку

TextBox1.Text = XResult == null ? String.empty : XResult.ToString();
person JaredPar    schedule 04.03.2011

Если вы открываете страницу без строки запроса «res», вам необходимо включить проверку на нуль, прежде чем что-либо делать с ней.

if (Request.QueryString["res"] != null)
{
    XResult = Request.QueryString["res"];
    TextBox1.Text = XResult.ToString();
}
person Chev    schedule 04.03.2011

Эта ошибка может быть связана с тем, что метод REquest.QueryString не нашел значение для «res» в URL-адресе, поэтому, когда вы пытаетесь выполнить «toString» для нулевого объекта, возникает это исключение.

person JAiro    schedule 04.03.2011

Ваш код ожидает строку запроса http://localhost:xxxx/yourapp?res=yourval. Его нет в адресе, предоставленном браузеру. В разделе web свойств вашего проекта вы можете указать соответствующий URL-адрес. Конечно, было бы целесообразно укрепить ваш код, чтобы учесть это.

person spender    schedule 04.03.2011

XResult уже является строкой, поэтому вызов ToString не требуется. Это также должно решить вашу проблему.

person Tony Casale    schedule 04.03.2011
comment
.ToString() в строке не вызовет ошибки. Проблема в том, что XResult имеет значение null, потому что он не находит res в строке запроса. - person Mike M.; 04.03.2011
comment
Это уже строка, и вызов .ToString() не нужен, но это не решит вашу проблему. - person Chev; 04.03.2011
comment
Это решит исключение нулевой ссылки, потому что вызов .ToString() для нулевого значения вызовет исключение. - person Tony Casale; 04.03.2011

Проблема здесь в том, что XResult имеет значение null, и когда вы вызываете для него ToString, код создает NullReferenceException. Вам нужно учесть это, выполнив явную нулевую проверку:

if (Request.QueryString["res"] != null)
{
    XResult = Request.QueryString["res"];
    TextBox1.Text = XResult.ToString();
}
person mhine    schedule 18.09.2013