我们有一个现有的MVC2项目,我们刚刚升级到MVC4后面的第一个these steps进入MVC3,然后these steps进入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"); %>
为什么这样做,但是浏览器中的操作网址从不缓存?
答案 0 :(得分:0)
原来这是第三方库的问题 - 51Degrees。这是该库的最新版本中引入的问题。在从MVC2转换为MVC4的过程中,我安装了nuget软件包,这比我之前使用的版本晚几个版本。
虚假警报 - 与ASP.NET MVC升级或任何ASP.NET相关无关。