当前位置:编程学习 > C#/ASP.NET >>

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时 报异常,未将对象引用到实例

把 "未将对象引用到实例" 看透。 --------------------编程问答--------------------
引用 2 楼 ZaoLianBuXiQi 的回复:
都没赋值,你就用
setModel这个方法 不就是 赋值吗 为Null 创建 否则直接使用,主要是以前在webform情况下 这些都没问题,可是在mvc情况下 使用Cookie和Session都会有同样的问题 在Action1创建的Session或cookie只能在Action1 中使用,其他的action不能使用,之前的方法说 要在一个void方法进行赋值可是使用还是有问题 求解 --------------------编程问答--------------------
引用 4 楼 xl_0715 的回复:
HttpCookie Cookie_login = Request.Cookies["loginModel"];
//创建Cookie时 报异常,未将对象引用到实例

把 "未将对象引用到实例" 看透。
你说是 异常吗?主要是以前在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 ,那是不是你没赋值就使用 --------------------编程问答--------------------
引用 3 楼 ZaoLianBuXiQi 的回复:
用Cookie 还不如用Session
用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;
        } --------------------编程问答--------------------
引用 7 楼 ZaoLianBuXiQi 的回复:
       if (Cookie_login != null)
                {
                    userName = Cookie_login["loginModel"].ToString();
                }
                else
                {
                    Cookie_login = new HttpCookie("loginModel");
                    Cookie_login["loginModel"] = userName;//放入Cookie中
                }
如果没先走else ,那是不是你没赋值就使用
我好像明白了 --------------------编程问答--------------------
引用 9 楼 peter7_zhang 的回复:
Quote: 引用 7 楼 ZaoLianBuXiQi 的回复:

       if (Cookie_login != null)
                {
                    userName = Cookie_login["loginModel"].ToString();
                }
                else
                {
                    Cookie_login = new HttpCookie("loginModel");
                    Cookie_login["loginModel"] = userName;//放入Cookie中
                }
如果没先走else ,那是不是你没赋值就使用
我好像明白了


貌似 session Cookie 只能写在 Action 返回值为ActionResult方法里 谢啦 各位
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,