Какова длительность атрибута asp.net MVC OutputCache по умолчанию?

Мы используем атрибут outputcache MVC, как показано ниже.

[OutputCache(Location = System.Web.UI.OutputCacheLocation.Server, Duration = 60 * 60 * 12, VaryByParam = "staticDataTypes;customerSubscriptionId")]

Каково значение по умолчанию Duration?


person Sparrow    schedule 22.04.2016    source источник
comment
Значение продолжительности по умолчанию равно 0.   -  person Yogi    schedule 22.04.2016
comment
То есть, если значение Duration равно 0, значит, мы не кэшируем?   -  person Sparrow    schedule 22.04.2016
comment
да, это так. 0 означает отсутствие кэширования.   -  person Yogi    schedule 22.04.2016


Ответы (1)


Свойство Duration инициализировано в System.Web.Configuration.OutputCacheProfile.cs, вот соответствующий код:

_propDuration = new ConfigurationProperty("duration", typeof(int), -1, 
                                          ConfigurationPropertyOptions.None); 

и

[ConfigurationProperty("duration", DefaultValue = -1)]
public int Duration {
    get { 
         return (int)base[_propDuration];
    } 
    set { 
        base[_propDuration] = value;
    } 
}

Что устанавливает значение по умолчанию -1, что является недопустимым значением. В документации для свойства Duration упоминается: «Продолжительность должна быть определена либо в профиле, либо в директиве страницы, использующей профиль».

Таким образом, на самом деле нет (действительного) значения по умолчанию, вы должны указать его.

person Ton Plooij    schedule 22.04.2016