IE非常渴望缓存页面,即使您不告诉它通过缓存头也是如此。Microsoft KB 234067说明了必要的咒语。简而言之,您需要提供以下标头。
Pragma: no-cache
Cache-Control: no-cache
Expires: <some time in the past>
设置Expires = -1
(如知识库文章中所建议)应适用于大多数框架。浏览器必须将无效的日期格式视为过去的格式(RFC 2616)。
在.NET中,您可以在调用网页之前使用以下方法以逐页的粒度进行操作:
HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
HttpContext.Response.Cache.SetValidUntilExpires(false);
HttpContext.Response.Cache.SetRevalidation(System.Web.HttpCacheRevalidation.AllCaches);
HttpContext.Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
HttpContext.Response.Cache.SetNoStore();
请参阅:http :
//www.localwisdom.com/blog/2012/10/force-a-page-refresh-on-a-asp-net-mvc-website/
适用于MVC3.0。