清除存储在客户端位置的ASP.net MVC 5中的outputcache

时间:2017-05-04 19:53:50

标签: c# asp.net asp.net-mvc caching asp.net-mvc-5

我是ASP.Net MVC 5的初学者。我在某些控制器操作中应用了缓存。现在我想要一个动作来清除客户端缓存。如何实现它。 这就是我现在所拥有的:

[OutputCache(Duration = 10800, Location = OutputCacheLocation.Client)]
public PartialViewResult Temp()
{
    return PartialView("Index", data);
}

链接我看了一下: ClearCache

它有一个解决方案,告诉您使用:Response.Cache.SetNoStore

但它会告诉客户永远不会缓存吗?我迷失在这里。请指导我。在某些情况下,我只想清除缓存。在其他情况下,缓存应按预期进行。

1 个答案:

答案 0 :(得分:0)

在布局页面中添加此meta标记(在html头中):

  <meta http-equiv="Cache-Control" content="no-cache" />
    <meta http-equiv="Pragma" content="no-cache" />
    <meta http-equiv="Expires" content="0" />

并添加golbal.asax.cs

 protected void Application_AcquireRequestState(Object sender, EventArgs e)
        {
            HttpContext.Current.Response.AddHeader("Cache-Control", "no-cache, no-store, must-revalidate");
            HttpContext.Current.Response.AddHeader("Pragma", "no-cache");
            HttpContext.Current.Response.AddHeader("Expires", "0");
     }