我的会话课中有这个字段:
public bool IsCartRecentlyUpdated
{
get
{
if (this.session["IsCartRecentlyUpdated"] != null)
{
return (bool)this.session["IsCartRecentlyUpdated"];
}
else
{
this.session["IsCartRecentlyUpdated"] = false;
return (bool)this.session["IsCartRecentlyUpdated"];
}
}
set
{
this.session["IsCartRecentlyUpdated"] = value;
}
}
每当用户将产品添加到购物车时,我将此值设为true:
public void AddToCart(Product product, int quantity)
{
IsCartRecentlyUpdated = true;
//other code for updating the cart
}
将产品添加到购物车会进行回发,因此我可以在General Master页面的Page_Load中购物车显示消息(ëg:产品成功添加)当产品刚刚添加到购物车时找到:
protected void Page_Load(object sender, EventArgs e)
{
if (this.sessionsUtil.IsCartRecentlyUpdated)
{
this.lblCartWarning.Text = (string)GetLocalResourceObject("CartWarning");
imgCardLogos.Visible = false;
}
else
{
this.lblCartWarning.Text = String.Empty;
imgCardLogos.Visible = true;
}
//other code
//put it back to false to not show the message each time the page is loaded
this.sessionsUtil.IsCartRecentlyUpdated = false;
}
这段代码可以很棒本地,但在服务器上添加后 产品到购物车,但在第二页加载 ... (我想在服务器上以某种方式在会话var更新之前加载页面 - 非常奇怪)
你知道为什么吗?我在代码中没有看到任何问题...答案 0 :(得分:1)
使用IIS express可能更容易解决这样的奇怪问题 http://weblogs.asp.net/scottgu/archive/2011/01/03/vs-2010-sp1-beta-and-iis-developer-express.aspx