2012-05-03 14 views
6

我正在使用ASP.NET MVC3。
我在控制器方法上使用了輸出緩存。如何在輸出緩存中使用動態持續時間值?

[OutputCache(Duration = 3660, VaryByParam = "none")] 
    public ActionResult Index() 
    { 
     some code; 
     return View(); 
    } 

我想在輸出緩存中使用一些靜態變量或其他東西。

我怎樣才能做到這一點?

回答

10

我會從OutputCache屬性繼承,並設置在那裏的Duration

public static class CacheConfig 
{ 
    public static int Duration = 36600; 
} 

public class MyOutputCacheAttribute : OutputCacheAttribute 
{ 
    public MyOutputCacheAttribute() 
    { 
     this.Duration = CacheConfig.Duration; 
    } 
} 

[MyOutputCache(VaryByParam = "none")] 
public ActionResult Index() 
{ 
    return View(); 
} 

然後你可以改變Duration動態和全球線槽CacheConfig.Duration

,你仍然可以覆蓋上每一個全局設置如果你想要的動作:

[MyOutputCache(Duration = 100, VaryByParam = "none")] 
public ActionResult OtherAction() 
{ 
    return View(); 
} 
相關問題