6

我正在使用 ASP.NET MVC3。
我在控制器方法上使用了输出缓存。

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

我想在输出缓存中使用一些静态变量或其他东西来放置动态持续时间。

我怎样才能做到这一点?

4

1 回答 1

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();
}
于 2012-05-03T07:28:48.583 回答