個人代碼: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