У меня есть приложение MVC, которое работает без проблем. Теперь я хочу немного улучшить кеширование. Я пытался использовать атрибут OutputCache из области имен System.Web.Mvc, но без значения, которое я выбрал, заголовок всегда был открытым или закрытым. Можно ли установить кеширование на частный И общественный используя этот атрибут?Как установить атрибут outputcache ASP.NET для создания частного и общего кэширования?
0
A
ответ
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 делает это даже не имеет смысла для меня, но я мог бы быть что-то отсутствует.
Привет, вы имеете в виду, что заголовок кэша в том же запросе является общедоступным и приватным? –
Да, именно это. –