是否有人在MVC4 .net页面的web.config中设置缓存的持续时间?我有:
[OutputCache(Duration = Convert.ToInt32(ConfigurationManager.AppSettings["cache.eventPage"]), VaryByParam = "Id")]
public ActionResult....
因为
而无法编译属性参数必须是属性参数类型
的常量表达式,typeof表达式或数组创建表达式
我们拥有非常流量的流量,并且希望能够在推出新版本的情况下非常快速地更改此值。这可能吗?
答案 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")]
您可以为您拥有的每个缓存方案创建不同的配置文件。