给定一个用OutputCacheAttribute装饰的控制器动作,该动作本身是否可以与OutputCacheAttribute的属性进行交互?
例如,如果该动作是动态进行的,这将很有用:
确定CacheItemPriority
并在返回ActionResult之前进行设置。
确定应对此特定请求禁用缓存,因此NoStore
属性设置为true。
是不是如果答案是否定的,那么对于这种基于动作的动态行为,我在MVC中进行输出缓存的后盾是什么?
最佳答案
CacheItemPriority不是OutputCacheAttribute的一部分,因此您需要子类OutputCacheAttribute并从那里进行修改,或者自己动手修改(可能是通过子类化ActionFilterAttribute)。
下面的文章显示了您要执行的操作的示例。看起来它是在标准MVC OutputCacheAttribute上具有任何可用参数之前编写的,因此本文的大部分内容都在显示所需的内容或非常接近所需的内容。
http://blog.maartenballiauw.be/post/2008/06/26/Creating-an-ASPNET-MVC-OutputCache-ActionFilterAttribute.aspx