个人代码:html
userController中的登陆方法中:session
Boolean result= _userService.ValidUser(userName, pwd, out msg);
if (result && msg == string.Empty)
{
Session["isLogin"] = "True";
return RedirectToAction("Index", "Manage");
}
else
{
Session["isLogin"] = "False";
return Json(false);
}spa
在ManageController里面,我本来想用一个只读变量去保存session["isLogin"]的值,所以我在Managecontroller的实例化方法中赋值:htm
private readonly bool LogOnState;对象
public ManageController(IModulesService modulesService)
{
_modulesService = modulesService;blog
if(Session["isLogin"]==null||Session["isLogin"].toString()=="false")string
{io
LogOnState=false;登录
}变量
else if(Session["isLogin"]!=null&&Session["isLogin"].toString()=="True")
{
LogOnState=true;
}
}
以后打开页面时就能够断定登陆状态LogOnState=true,才打开页面
可是在运行到红色那行代码时,报错:未将引用对象实例化
后来我把断定session值的代码放入其余Action方法中使用就没报此错误。
总结:通常状况下经过这种方式获取Session值不会有问题,不过应特别注意要使用session必需要page_load方法执行以创建了page对象之后才有session的使用目标,此时先检测Session是否为Null再调用值是不会提示错误的。
解决问题参考文章:http://www.cnblogs.com/xyd21c/archive/2010/12/11/1903491.html