2013-07-02 48 views
7

是否有一個是在web.config中爲MVC4 .net頁面設置緩存的持續時間?我有:MVC4在配置文件中查看緩存持續時間?

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

這將不能編譯,因爲

的屬性參數必須是常量表達式的typeof屬性參數類型的表達式或數組創建表達式

我們有非常spikey流量,並希望能夠快速更改此值,並推出新版本。這可能嗎?

回答

15

您可以使用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

+0

這就是我最終這樣做的結果。我想知道是否有更多的方法來訪問這些值。儘管這可能是唯一的答案。 –

+1

賞金將在明天頒發給我,爲我節省了很多時間。 –