即使使用CTRL + F5,缓存页面也永远不会刷新(即使清除浏览器缓存CTRL + R)

时间:2012-11-22 18:38:14

标签: asp.net-mvc asp.net-mvc-4

我在Visual Studio ASP.NET MVC4项目上激活缓存。

以下是我管理缓存的代码部分:

filterContext.HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(1));
filterContext.HttpContext.Response.Cache.SetValidUntilExpires(true);
filterContext.HttpContext.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.Public);

为了测试,我在动作编辑页面中放置了一个断点。当我运行我的应用程序并导航到特定页面(编辑页面)时,我可以很容易地看到操作页面被缓存,因为从未到达断点。接下来,我使用CTRL + F5清除缓存并导航到相同的编辑页面。我期望在我的动作编辑页面中到达断点,但事实并非如此。我从未点击编辑操作页面,从不!?

enter image description here

enter image description here

知道为什么吗?

感谢。

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用OutputCache属性?它更容易控制(通过配置完成)并且更容易使用写入响应。

基本用法示例:

[OutputCache(Duration=10, VaryByParam="none")]
public ActionResult Index()
{
    return View();
}

或者您可以在web.config中创建自己的命名设置。示例配置:

<caching>
    <outputCacheSettings>
        <outputCacheProfiles>
            <add name="Cache1Hour" duration="3600" varyByParam="none"/>
        </outputCacheProfiles>
    </outputCacheSettings>
</caching>

......并像这样使用:

Example usage:

[OutputCache(CacheProfile="Cache1Hour")]
public ActionResult Index()
{
    return View();
}

here

复制的示例