我在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清除缓存并导航到相同的编辑页面。我期望在我的动作编辑页面中到达断点,但事实并非如此。我从未点击编辑操作页面,从不!?
知道为什么吗?
感谢。
答案 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
复制的示例