I'm using ASP.NET MVC3.
I've used Output Caching on controller method.
[OutputCache(Duration = 3660, VaryByParam = "none")]
public ActionResult Index()
{
some code;
return View();
}
I want to put dynamic duration using some static variable or something else in Output Caching.
How can i do this?
I would inherit from the OutputCache
attribute and set there the 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();
}
Then you can change the Duration
dynamically and globally trough the CacheConfig.Duration
And you can still override the global setting on every action if you want:
[MyOutputCache(Duration = 100, VaryByParam = "none")]
public ActionResult OtherAction()
{
return View();
}