Asp.net无法获取更新的Cookie

时间:2017-01-26 14:24:47

标签: c# asp.net asp.net-mvc cookies

使用Cookie更新所需的功能,因为它已通过会话实现。 在我的场景中,我正在添加/更新Cookie in action方法,当部分视图呈现时,它获取cookie的先前数据。一旦页面重新加载,它就会显示更新的数据。

行动方法

Response.Cookies["TColumns"].Value = string.Join(",", displayListCol); ;
Response.Cookies["TColumns"].Expires = DateTime.Now.AddDays(10);
Response.Cookies["TColumns"].Domain = null;

部分视图

<%
List<string> selectedColumns = Request.Cookies["TColumns"].Value.ToString().Split(',').ToList();
//Some code
%>

在asp.net应用程序中跟随这些MSDN链接到writeread cookie。

谢谢!

1 个答案:

答案 0 :(得分:0)

设置cookie时,它实际上会添加一个响应头。当客户端收到响应并解析标头时,它会在本地创建cookie。在下一个请求中,客户端将使用先前设置的cookie设置请求标头。只有这样才能在服务器上看到cookie。

在您的代码中,您要设置Cookie并尝试在同一请求中全部读取它。 Cookie尚未设置,因此您无法阅读。在能够读取cookie之前,客户端必须有新的请求。这就是为什么您的代码在页面刷新后工作的原因。避免必须手动刷新页面的快速方法是在设置cookie后重定向。无论您如何处理它,在设置之后都需要另一个读取cookie的请求。