0

我有一个带有 jquery 的带有 asp.net 的 MVC4 应用程序,该项目在第一时间加载所有页面,然后通过 ajax 更新内容。

注销应用程序后,所有页面都保留在缓存中。导致下次登录时,新数据与旧数据混合或重复某些数据。

如何在注销时删除所有缓存?

4

1 回答 1

1

我假设浏览器是缓存页面的浏览器。如果是这种情况,您不能在浏览器注销时简单地从浏览器中删除缓存。

相反,您需要告诉浏览器不要缓存任何页面。

您可以使用简单的操作过滤器来执行此操作并覆盖该OnResultExecuting方法

    public override void OnResultExecuting(ResultExecutingContext filterContext)
    {
        filterContext.HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
        filterContext.HttpContext.Response.Cache.SetValidUntilExpires(false);
        filterContext.HttpContext.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
        filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);

        base.OnResultExecuting(filterContext);
    }
于 2012-12-13T21:03:21.527 回答