【问题标题】:Output caching with location=server not working位置=服务器的输出缓存不起作用
【发布时间】:2015-10-08 09:34:09
【问题描述】:

我已经在控制器的 Action 方法上实现了输出缓存

[OutputCache(Duration = 60, VaryByParam = "ID", VaryByHeader="User-Agent", Location = System.Web.UI.OutputCacheLocation.Server)]
public ActionResult MyAction(int ID)
{
    _logger.Error("call-" + ID);
}

我已在此操作中进行了日志条目。所以,我的问题是使用 location=Server 的输出缓存每次都会调用此操作方法。它不应该每次都调用。

那么,这有什么问题呢?

当我更改缓存位置,即 location=Client 时,它仅在第一次调用该方法时。然后没有调用动作方法。

【问题讨论】:

  • 你要等多久才能打第二个电话?
  • 我设置了 Duration=60 秒,在第一次请求后,我在 4-5 秒后点击了,但它没有从缓存中检索。
  • 而且每次请求都是同一个ID?
  • 是的,每次都是同一个ID。
  • 能看到action方法的定义吗?

标签: asp.net-mvc-4 nopcommerce


【解决方案1】:

您是否尝试在 ChildAction 上进行输出缓存?我知道你没有在你的问题中写 ChildAction 属性,只是要求确认?如果是,那么您不能使用不是子操作的输出缓存。如果你想使用没有子操作的输出缓存,你需要使用this缓存插件。

【讨论】:

  • 它不是 ChildAction。但感谢您的宝贵回答。
  • 这就是我要说的。如果它不是子操作,则不能使用 MVC 内置缓存。您需要使用甜甜圈缓存。
  • 好的..我明白了。谢谢。
  • 很高兴为大家提供帮助
  • 很高兴得到您的帮助。
猜你喜欢
  • 1970-01-01
  • 2012-10-04
  • 1970-01-01
  • 2012-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-12
  • 2013-05-22
相关资源
最近更新 更多