会话变量错误asp.net

时间:2013-04-06 20:58:40

标签: asp.net session-variables

假设我有2页'A'和'B'。我在'A'中设置了一个会话变量,在页面'B'的page_load函数中使用:

进行检查
 if (!string.IsNullOrEmpty(Session["x"].ToString()))
 {
 }

并根据该会话变量的值执行相应的操作,但如果我先打开页面'B',则会显示错误:

 Object reference not set to an instance of an object.

如何预先设置此对象的实例?

2 个答案:

答案 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
}