location=server 的输出缓存不工作

Output caching with location=server not working

我已经使用

在控制器的 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 然后只有第一次调用该方法。然后不调用动作方法。

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