2014-01-25 4 views
0

У меня есть приложение MVC, которое работает без проблем. Теперь я хочу немного улучшить кеширование. Я пытался использовать атрибут OutputCache из области имен System.Web.Mvc, но без значения, которое я выбрал, заголовок всегда был открытым или закрытым. Можно ли установить кеширование на частный И общественный используя этот атрибут?Как установить атрибут outputcache ASP.NET для создания частного и общего кэширования?

+0

Привет, вы имеете в виду, что заголовок кэша в том же запросе является общедоступным и приватным? –

+0

Да, именно это. –

ответ

0

Невозможно установить выходной кеш как закрытый, так и открытый.

Копаем в источник Page.cs, например, находим следующее. NB нет возможности «кеширования», поскольку оба они реализованы как альтернативы друг другу.

switch (outputCacheLocation) 
    { 
    case OutputCacheLocation.Any: 
     cacheability = HttpCacheability.Public; 
     break; 
    case OutputCacheLocation.Client: 
     cacheability = HttpCacheability.Private; 
     break; 
    case OutputCacheLocation.Downstream: 
     cacheability = HttpCacheability.Public; 
     cache.SetNoServerCaching(); 
     break; 
    case OutputCacheLocation.Server: 
     cacheability = HttpCacheability.Server; 
     break; 
    case OutputCacheLocation.None: 
     cacheability = HttpCacheability.NoCache; 
     break; 
    case OutputCacheLocation.ServerAndClient: 
     cacheability = HttpCacheability.ServerAndPrivate; 
     break; 
    default: 
     throw new ArgumentOutOfRangeException("cacheSettings", System.Web.SR.GetString("Invalid_cache_settings_location")); 
    } 

Вы можете прочитать больше о HttpCacheability перечислении здесь http://msdn.microsoft.com/en-us/library/system.web.httpcacheability(v=vs.110).aspx

NB делает это даже не имеет смысла для меня, но я мог бы быть что-то отсутствует.

 Смежные вопросы

  • Нет связанных вопросов^_^