在.cs文件中使用Session的问题

我有一个购物车类ShoppingCart,有个CartId属性,每次使用这个属性时,在get里用session给其赋值:
但执行到object cartIDSession = context.Session["cartID"];时
总提示:未将对象引用设置到对象的实例。
源代码:
private string _CartID;

public string CartID
        {
            get
            {                object cartIDSession = context.Session["cartID"];
                if (cartIDSession != null)
                {
                    _CartID = cartIDSession.ToString();
                }
                else
                {
                    if (context.Request.Cookies["cartID"] != null)
                    {
                        _CartID = context.Request.Cookies["cartID"].Value;
                        context.Session["cartID"] = _CartID;
                    }
                    else
                    {
                        _CartID = Guid.NewGuid().ToString();
                        HttpCookie cookie = new HttpCookie("cartID", _CartID);
                        int howManyDays = int.Parse(ConfigurationManager.AppSettings["CartPersistDays"]);//cookie过期天数
                        TimeSpan timeSpan = new TimeSpan(howManyDays, 0, 0, 0);
                        DateTime expirationDate = DateTime.Now.Add(timeSpan);
                        cookie.Expires = expirationDate;
                        context.Response.Cookies.Add(cookie);
                        context.Session["cartID"] = _CartID;
                    }
                }
                return _CartID;
            }
            set { _CartID = value; }
        }

后来发现:
因为我是用ajax完成这个添加到购物车功能的,所以很习惯的在.ashx页使用的这个CartID属性。
但现在换成在.aspx页使用CartID属性,Session就不为空了!问题解决了

看来若想在.cs文件中使用session,那么使用.cs文件的页必须是.aspx页才行!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值