C# 缓存的asp.net MVC控制器操作未刷新

C# 缓存的asp.net MVC控制器操作未刷新,c#,asp.net,asp.net-mvc,caching,C#,Asp.net,Asp.net Mvc,Caching,我有一个asp.net mvc应用程序,它的web.config文件中有以下设置: <staticContent> <clientCache cacheControlCustom="public" cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" /> </staticContent> 正如人们可能猜测的那样,这告诉浏览器缓存索引页10秒钟。查看Chrome中的标题,我看到以下内容

我有一个asp.net mvc应用程序,它的web.config文件中有以下设置:

<staticContent>
  <clientCache cacheControlCustom="public" cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" />
</staticContent>
正如人们可能猜测的那样,这告诉浏览器缓存索引页10秒钟。查看Chrome中的标题,我看到以下内容:

发出此请求的当前时间正好是15:56:50

我的问题是:

  • 既然Expires的标题是:14:46:57,为什么Chrome在我导航出和返回(使用后退按钮)时从缓存中获取页面,而不是转到服务器
  • 如何让浏览器获取过期的新页面
您能提供更多的上下文吗?您是在尝试自动刷新索引页..还是?我实际上是在使用浏览器的“后退”按钮导航出该页并返回。在新浏览器窗口中打开同一页面具有非常相同的效果,chrome从缓存中获取页面,而不是从服务器获取新副本:(明白了。我知道你可以用Javascript实现这一点,不管超时时间如何……这也可能解决第二个潜在问题,即用户是否会在第二个页面上花费11秒或更长的时间。我不会发布脚本,因为它没有回答问题(如果你真的想走这条路,那么已经有多个例子了)当你说“15:56:50”时,这可能会有所帮助,你是说15:56:50 GMT还是15:56:50 GMT+1?
[OutputCache(Duration = 10, Location = OutputCacheLocation.Client, VaryByParam = "*")]
public ActionResult Index()
{
       // ...
       return View();
}