我们有一个现有的 MVC2 项目,我们刚刚升级到 MVC4,首先按照这些步骤到达 MVC3,然后按照这些步骤到达 MVC4。
输出缓存在我们的 MVC2 项目中已经成功运行了很长时间,但是在 MVC4 版本之后它就不起作用了。
我添加了一个简单的控制器来测试缓存:
public class TestController : Controller
{
[OutputCache(Duration = 600, VaryByParam = "*")]
public ActionResult CacheTest()
{
return Content(DateTime.Now.ToLongTimeString());
}
}
每次刷新此页面时,浏览器的时间输出都会更改。
在相同的解决方案中创建一个新的 MVC3 项目,然后升级到 MVC4,然后复制相同的代码按预期工作。
所以在我们现有的代码或配置中一定有什么东西破坏了输出缓存。
我还尝试从 web.config 文件中删除大量内容,认为某些东西会导致问题 - 不走运。
有关如何修复或调试此问题的任何建议?
更新:
在任何视图中呈现上面的 CacheTest 操作将显示缓存结果 - 即每次刷新时日期都不会改变:
<% Html.RenderAction("CacheTest", "Test"); %>
为什么这行得通,但来自浏览器的操作 url 永远不会被缓存?