我有一个购物车类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页才行!
在.cs文件中使用Session的问题
最新推荐文章于 2022-03-09 23:36:41 发布