您的位置:首页 > 其它

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

2009-03-24 21:19 330 查看
我有一个购物车类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页才行!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐