MVC4在配置文件中查看缓存持续时间?

时间:2013-07-02 18:45:26

标签: asp.net asp.net-mvc-4 caching output-caching

是否有人在MVC4 .net页面的web.config中设置缓存的持续时间?我有:

[OutputCache(Duration = Convert.ToInt32(ConfigurationManager.AppSettings["cache.eventPage"]), VaryByParam = "Id")]
public ActionResult....

因为

而无法编译
  

属性参数必须是属性参数类型

的常量表达式,typeof表达式或数组创建表达式

我们拥有非常流量的流量,并且希望能够在推出新版本的情况下非常快速地更改此值。这可能吗?

1 个答案:

答案 0 :(得分:16)

您可以使用OutputCache profiles;在web.config中定义一个部分

<system.web>
 <caching>
  <outputCacheSettings>
    <outputCacheProfiles>
       <add name="CacheProfile1" duration="10" />  <!--10 seconds -->
       <add name="CacheProfile2" duration="3600" /> <!--one hour-->
       <add name="CacheProfileNone" duration="0" /> <!--disabled-->
    </outputCacheProfiles>
  </outputCacheSettings>
 </caching>
</system.web>

通过您已经完成的属性在控制器操作方法上使用它。只需使用 CacheProfile 属性。

[OutputCache(CacheProfile = "CacheProfile1",VaryByParam = "Id")]

您可以为您拥有的每个缓存方案创建不同的配置文件。

More info on caching at MSDN