在我的webapp中,我使用Cookie变量更改了Session变量。
我写了这段代码:
public Commessa CookieCommessa
{
get
{
try
{
string myObjectJson = Request.Cookies["CookieCommessa"].Value;
return JsonConvert.DeserializeObject<Commessa>(myObjectJson);
}
catch { return null; }
}
set
{
string myObjectJson = JsonConvert.SerializeObject(value);
if (Request.Cookies["CookieCommessa"] == null) ;
else
Request.Cookies.Remove("CookieCommessa");
var cookie = new HttpCookie("CookieCommessa", myObjectJson)
{
Expires = DateTime.Now.AddYears(1)
};
Response.Cookies.Add(cookie);
}
}
然后在页面加载中:
protected void Page_Load(object sender, EventArgs e)
{
//
if (IsPostBack) {
int x = 0;
}
if (!IsPostBack)
{
if (Convert.ToInt32(Master.QueryStringId) == 0)
{
CookieCommessa = new Commessa();
}
else
CookieCommessa = CommessaBL.Dettaglio(Convert.ToInt32(Master.QueryStringId));
}
}
然后在链接按钮中:
protected void LinkButtonSAVE_PRO_PRICE_DETAIL_Command(object sender, CommandEventArgs e)
{
Commessa c = CookieCommessa;
//OTHER CODE HERE
}
当我尝试访问linkbutton事件中的CookieCommessa
时,CookieCommessa
存在,但没有重要值(01/01/0001过期)。
我已经阅读了很多关于堆栈溢出和其他网站的文档,但没有答案。
我哪里错了?