在 ASP.NET MVC 中删除多个操作请求中的 Cookie

Delete Cookie in Multiple Action Request in ASP.NET MVC

我想删除 ASP.NET

中的 cookie

这是我正在使用的代码,它适用于除一种情况以外的所有情况。

   public static void DeleteCookie(string name)
        {
            if (!string.IsNullOrWhiteSpace(name))
            {
                var cookie = HttpContext.Current.Request.Cookies[name];

                if (cookie != null)
                {
                    // Delete the cookie
                    cookie.Expires = DateTime.Now.AddDays(-1d);
                    HttpContext.Current.Response.Cookies.Add(cookie);
                }
            }
        }

场景是这样的。

当我转到我的项目的详细信息页面时,会创建一个 cookie。当我回到项目列表时。然后我需要删除 cookie,这样某些菜单就不会显示了。但是在同一个请求中,当 View 调用删除 cookie 时,它​​ returns 保存值。

我已经调试了cookie。过期日期即设置为 -ve 但直到请求未完成,cookie 才会被删除。

求助..

Cookie 已存储 client-side,因此在客户端收到响应 header 指示之前,Cookie 不会真正被删除。然后,在 next 请求中,它将不再发送该 cookie,但您无法删除并检查它是否已在同一请求中被删除,因为它实际上尚未被删除。通常,当您删除一个 cookie 时,您希望 return 重定向,即使它是相同的 URL。这样,客户端将被迫发出新的 cookie-less 请求。