2

我在我的 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 清除了缓存并导航到相同的编辑页面。我希望在我的操作编辑页面中达到断点,但事实并非如此。我从来没有点击过编辑操作页面,从来没有!?

在此处输入图像描述

在此处输入图像描述

知道为什么吗?

谢谢。

4

1 回答 1

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();
}

从这里复制的示例

于 2012-12-31T13:34:06.917 回答