【问题标题】:Interact with OutputCacheAttribute与 OutputCacheAttribute 交互
【发布时间】:2012-12-04 21:50:57
【问题描述】:

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

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

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

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

【问题讨论】:

  • 您可以创建自己的缓存属性,然后将参数传递到其中?

标签: c# asp.net-mvc-3 caching asp.net-mvc-4


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2013-09-20
    • 2012-08-09
    • 1970-01-01
    • 2020-08-13
    • 2010-11-19
    • 1970-01-01
    • 2017-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多