Вопрос по asp.net-mvc-3 – Как использовать динамическое значение длительности в кешировании вывода?

6

Я использую ASP.NET MVC3.
Я использовал кэширование вывода по методу контроллера.

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

Я хочу поместить динамическую длительность, используя некоторую статическую переменную или что-то еще в кэшировании вывода.

Как я могу это сделать?

Ваш Ответ

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();
}

Похожие вопросы