我可以編寫和讀取cookie,但我無法更改現有cookie的值,它始終具有第一個設置值。我發現如何實施,但沒有人工作的幾種方法。這裏是我的代碼:無法在asp.net中更新cookie mvc
private void AddPost(string key)
{
var context = System.Web.HttpContext.Current;
var request = context.Request;
var response = context.Response;
var cookie = request.Cookies[Constants.PostsViewing];
if (cookie == null || string.IsNullOrEmpty(cookie.Value))
{
response.Cookies.Add(new HttpCookie(Constants.PostsViewing, key)
{
Expires = DateTime.Now.AddDays(365)
});
}
else
{
if (cookie.Value.Split(';').Contains(key))
{
return;
}
var v = cookie.Value + ";" + key;
cookie.Value = v;
cookie.Expires = DateTime.Now.AddDays(365);
response.Cookies.Add(cookie);
// this way also doesn't work
//cookie.Value = v;
//response.AppendCookie(cookie);
// and this
//response.Cookies[Constants.PostsViewing].Value = v;
//response.Cookies[Constants.PostsViewing].Expires = DateTime.Now.AddDays(365);
}
}
根據msdn cookie文件應owerwritten。
每個cookie都必須具有唯一的名稱,以便稍後在從瀏覽器中讀取時可以識別它。因爲cookie是按名稱存儲的,所以命名兩個cookie相同會導致覆蓋。
你有什麼想法如何解決它?
我有完全相同的問題。完全困惑。 – 2014-09-09 18:20:58