我有一个带有 jquery 的带有 asp.net 的 MVC4 应用程序,该项目在第一时间加载所有页面,然后通过 ajax 更新内容。
注销应用程序后,所有页面都保留在缓存中。导致下次登录时,新数据与旧数据混合或重复某些数据。
如何在注销时删除所有缓存?
我有一个带有 jquery 的带有 asp.net 的 MVC4 应用程序,该项目在第一时间加载所有页面,然后通过 ajax 更新内容。
注销应用程序后,所有页面都保留在缓存中。导致下次登录时,新数据与旧数据混合或重复某些数据。
如何在注销时删除所有缓存?
我假设浏览器是缓存页面的浏览器。如果是这种情况,您不能在浏览器注销时简单地从浏览器中删除缓存。
相反,您需要告诉浏览器不要缓存任何页面。
您可以使用简单的操作过滤器来执行此操作并覆盖该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);
}