回发ASP.Net后Cookie失去价值

时间:2018-01-04 09:52:05

标签: c# asp.net cookies

在我的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过期)。

我已经阅读了很多关于堆栈溢出和其他网站的文档,但没有答案。

我哪里错了?

0 个答案:

没有答案