我可以编写和读取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