2

当我尝试使用“在浏览器中查看”选项从 VS 2008 中的 IDE 打开页面时,出现“对象引用未设置为对象实例”错误。

我收到此错误的代码:

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

6 回答 6

6

这里的问题是XResultnull当您调用ToString它时,代码会生成一个NullReferenceException. 您需要通过进行显式null检查来解决此问题

TextBox1.Text = XResult == null ? String.empty : XResult.ToString();
于 2011-03-04T19:40:04.340 回答
4

如果您在没有“res”查询字符串的情况下打开页面,那么您需要在对它执行任何操作之前包含对 null 的检查。

if (Request.QueryString["res"] != null)
{
    XResult = Request.QueryString["res"];
    TextBox1.Text = XResult.ToString();
}
于 2011-03-04T19:40:53.210 回答
2

该错误可能是因为 REquest.QueryString 方法未在 url 中找到“res”的值,因此当您尝试对空对象执行“toString”时,会出现该异常。

于 2011-03-04T19:39:18.540 回答
1

您的代码需要一个查询字符串http://localhost:xxxx/yourapp?res=yourval。它不存在于提供给浏览器的地址中。在项目属性的Web部分中,您可以提供适当的 URL。当然,支持您的代码以允许这样做是可取的。

于 2011-03-04T19:38:06.020 回答
0

XResult 已经是一个字符串,因此不需要调用 ToString。这也应该可以解决您的问题。

于 2011-03-04T19:39:58.537 回答
0

这里的问题是 XResult 为空,当您调用ToString 它时,代码会生成一个NullReferenceException. 您需要通过执行显式空检查来解决此问题:

if (Request.QueryString["res"] != null)
{
    XResult = Request.QueryString["res"];
    TextBox1.Text = XResult.ToString();
}
于 2013-09-18T02:26:37.503 回答