假设我有2页'A'和'B'。我在'A'中设置了一个会话变量,在页面'B'的page_load函数中使用:
进行检查 if (!string.IsNullOrEmpty(Session["x"].ToString()))
{
}
并根据该会话变量的值执行相应的操作,但如果我先打开页面'B',则会显示错误:
Object reference not set to an instance of an object.
如何预先设置此对象的实例?
答案 0 :(得分:1)
在IsNullOrEmpty
进入操作之前,您将获得异常,并且会评估传递给IsNullOrEmpty
的参数。如果ToString()
为空,则会在Session["x"]
上调用Session["x"]
来获取异常。因此,在调用IsNullOrEmpty
之前,您将获得异常。
更改
if (!string.IsNullOrEmpty(Session["x"].ToString())) {}
To
if(Session["x"] != null && Session["x"].ToString() != string.Empty) {}
答案 1 :(得分:1)
当Session["x"].ToString()
为空时,您正在使用SessionX
,这就是您获得null exception
的原因
因此,您应该检查Session["x"]
不应该是null
if(Session["x"] != null )
{
// your code
}