在Login.aspx.cs中,在用户登陆时,记录了登陆人的帐号UserName:
Session["UID"] = UID;
Session["UNAME"] = UserName;
Response.Redirect("Map.aspx");
但是在其它的地方,如下,当想先判断UserName的值来执行不同的语句时,发现这个问题
var User = Session["UNAME"].ToString();
会报错:
Object reference not set to an instance of an object.
怎么解决
这句错的意思是 “对象引用未设置为对象的实例。”,我想你应该明白了吧
你在Session["UNAME"].ToString();之前,判断一下Session["UNAME"]是否为null
不为空再ToString();
最好在赋值之前检查看看UserName是否有值
Session["UNAME"] = UserName;
使用session,application这种变量最好要判断值是否存在,要不会导致空引用,因为超时或者程序池重启会导致这2个对象重置
if( Session["UNAME"]==null)
{
Response.Write("已经超时!");Response.End();
}
string User = Session["UNAME"].ToString();