asp.net mvc3使用Cookie及Session 出现异常的问题
AccountController中[HttpPost]
public void Login(string userName, string userPass, string rememberme)
{
LoginBase loginbase = new LoginBase();
string strResult = loginbase.checkLogin(userName,userPass);
if (strResult == "1") { setModel(userName);}
Response.Write(strResult);
}
//获取登录信息
public void setModel(string userName)
{
HttpCookie Cookie_login = Request.Cookies["loginModel"];//创建Cookie
if (Cookie_login != null)
{
userName = Cookie_login["loginModel"].ToString();
}
else
{
Cookie_login = new HttpCookie("loginModel");
Cookie_login["loginModel"] = userName;//放入Cookie中
}
//对修改 及 新创建的cookie进行重新管理
Cookie_login.Path = "/";
Cookie_login.Expires = DateTime.Now.AddDays(1);//设置cookie的过期时间
Response.Cookies.Add(Cookie_login);
LoginBase.loginModel.loginName = userName;
}
可是程序 执行到 HttpCookie Cookie_login = Request.Cookies["loginModel"];//创建Cookie时 报异常,未将对象引用到实例
ASP.NET MVC Cookie 异常 --------------------编程问答-------------------- Request.Cookies
这个有没有值?
--------------------编程问答-------------------- 都没赋值,你就用 --------------------编程问答-------------------- 用Cookie 还不如用Session --------------------编程问答-------------------- HttpCookie Cookie_login = Request.Cookies["loginModel"];
//创建Cookie时 报异常,未将对象引用到实例
把 "未将对象引用到实例" 看透。 --------------------编程问答-------------------- setModel这个方法 不就是 赋值吗 为Null 创建 否则直接使用,主要是以前在webform情况下 这些都没问题,可是在mvc情况下 使用Cookie和Session都会有同样的问题 在Action1创建的Session或cookie只能在Action1 中使用,其他的action不能使用,之前的方法说 要在一个void方法进行赋值可是使用还是有问题 求解 --------------------编程问答-------------------- 你说是 异常吗?主要是以前在webform情况下 这些都没问题,可是在mvc情况下 使用Cookie和Session都会有同样的问题 在Action1创建的Session或cookie只能在Action1 中使用,其他的action不能使用,之前的方法说 要在一个void方法进行赋值可是使用还是有问题 求解 --------------------编程问答-------------------- if (Cookie_login != null)
{
userName = Cookie_login["loginModel"].ToString();
}
else
{
Cookie_login = new HttpCookie("loginModel");
Cookie_login["loginModel"] = userName;//放入Cookie中
}
如果没先走else ,那是不是你没赋值就使用 --------------------编程问答-------------------- 用Session的话
userLoginName 全局变量
[HttpPost]
public string getLoginName()
{
if (!CommonCheck.CheckTxtNotEmpty(userLoginName))
{
SetSession(userLoginName);
}
return userLoginName;
}
private void SetSession(string userName)
{
if (Session["userLogin"] != null)
userName = Session["userLogin"].ToString();
else
Session["userLogin"] = userName;
userLoginName = userName;
} --------------------编程问答-------------------- 我好像明白了 --------------------编程问答--------------------
貌似 session Cookie 只能写在 Action 返回值为ActionResult方法里 谢啦 各位
补充:.NET技术 , ASP.NET