4

给定一个用 OutputCacheAttribute 修饰的控制器动作,动作本身是否可以与 OutputCacheAttribute 的属性交互?

例如,如果动作是动态的,这将很有用:

  • CacheItemPriority在返回 ActionResult 之前 确定并设置它。
  • 确定应该为此特定请求禁用缓存,因此该NoStore属性设置为 true。

是的,不是吗?如果答案是否定的,那么在 MVC 中使用这种基于动作的动态行为进行输出缓存的后备方案是什么?

4

1 回答 1

0

CacheItemPriority 不是 OutputCacheAttribute 的一部分,因此您需要将 OutputCacheAttribute 子类化并从那里修改或自己滚动(可能通过子类化 ActionFilterAttribute)。

以下文章显示了您尝试执行的操作的示例。看起来它是在标准 MVC OutputCacheAttribute 有任何可用参数之前编写的,因此本文的大部分内容都在展示您想要的东西或非常接近您想要的东西。

http://blog.maartenballiauw.be/post/2008/06/26/Creating-an-ASPNET-MVC-OutputCache-ActionFilterAttribute.aspx

于 2012-12-13T00:34:37.197 回答