我正在使用ASP.NET MVC3 我在控制器方法上使用了输出缓存。
[OutputCache(Duration = 3660, VaryByParam = "none")]
public ActionResult Index()
{
some code;
return View();
}
我想在输出缓存中使用一些静态变量或其他东西来设置动态持续时间。
我该怎么做?
答案 0 :(得分:11)
我会继承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();
}