ASP.NET MVC Расширимое кэширование пончиков приносит кэширование пончиков в ASP.NET MVC 3 и более позднее. Код позволяет вам кэшировать всю вашу страницу, кроме одного или нескольких HTML.Acts, которые могут быть выполнены каждый запрос. Идеально подходит для конкретного пользователя контента.
Лучший способ добавить кэширование пончиков в ваш проект MVC - это использовать пакет Nuget. Внутри визуальной студии выберите инструменты | Менеджер библиотечных пакетов , а затем выберите либо консоли диспетчера пакетов, либо управлять пакетами Nuget. Через консоли просто введите MVCDOnutCaching Install-Package и нажмите возврат. В графическом интерфейсе просто найдите MVCdonutcaching и нажмите кнопку Установки.
Пакет добавляет несколько перегрузки в встроенный HTML.Action HTML Helper. Дополнительный параметр в каждой перегрузке называется ExclideFormParentCache . Установите это на True для любого действия, которое не должно быть кэшировано или должно иметь другую продолжительность кэша от остальной части страницы.
@Html . Action ( "Login" , "Account" , true )Пакет также включает в себя DonutOutputCacheatTribute, который будет использоваться вместо встроенного вывода. Этот атрибут обычно помещается на каждое действие контроллера, которое должно быть кэшировано.
Вы можете указать фиксированную продолжительность:
[ DonutOutputCache ( Duration = "300" ) ]
public ActionResult Index ( )
{
return View ( ) ;
}Или используйте профиль кеша:
[ DonutOutputCache ( CacheProfile = "FiveMins" ) ]
public ActionResult Index ( )
{
return View ( ) ;
}Если вы используете профили кэша, обязательно настройте профили в Web.Config. Добавьте следующее в элементе System.Web:
< caching >
< outputCacheSettings >
< outputCacheProfiles >
< add name = " FiveMins " duration = " 300 " varyByParam = " * " />
</ outputCacheProfiles >
</ outputCacheSettings >
</ caching >Вы также можете настроить выходной кэш для использования пользовательского поставщика:
< caching >
< outputCache defaultProvider = " DistributedCacheProvider " >
< providers >
< add name = " DistributedCacheProvider " type = " DevTrends.Example.DistributedCacheProvider " />
</ providers >
</ outputCache >
</ caching >Обратите внимание, что пользовательский провайдер не включен в этот проект, но вы можете написать его довольно легко с помощью подклассирующей системы.web.caching.outputcacheprovider . Ряд реализаций также доступен в Интернете.
Комплексное руководство по расширению кэширования пончиков MVC теперь доступно в блоге Devtrends.