Параметры кэширования, доступные в приложениях ASP.NET MVC не приходят с ASP.NET MVC Framework, но из ядра ASP.NET Framework.
1. Запрос-Scoped Кэширование
Каждый запрос ASP.NET начинается с ASP.NET Framework создает новый экземпляр
объекта System.Web.HttpContext выступать в качестве центральной точки взаимодействия между
компонентами по всему запросу.
Одна из многих свойств HttpContext является HttpContext.Items здания, в
словаре , который живет на протяжении всего срока службы запроса и который любой компонент
может манипулировать.
например:
// как хранить данные в коллекции: HttpContext.Items [ « IsFirstTimeUser » ] = правда ; // Извлечение данных из словаря так же легко: BOOL IsFirstTimeUser = ( BOOL ) HttpContext.Items [ " IsFirstTimeUser " ];
2. User-Scoped Кэширование
ASP.NET состояние сеанса позволяет хранить данные, сохраняющихся между несколькими запросами.
// хранить имя пользователя в сеансе HttpContext.Session [ « имя пользователя » ] = « Hrusi » ; // получить и отливать нетипизированное значение: строка имя = ( строка ) HttpContext.Session [ « имя пользователя » ];
<system.web>
<sessionState Тайм - аут = "30" />
</system.web>
3. ASP.NET Cache
System.Web.Cache является ключ / значение магазина
4. Выход кэша
ASP.NET предоставляет возможность работать на более высоком уровне, кэширование HTML, который генерируется в результате запроса.
[OutputCache (длительность = 60 , VaryByParam = " никто " )] общественность ActionResult Контакт () { ViewBag.Message = DateTime.Now.ToString (); вернуться View (); }
Настройка местоположения кэша
Например, вы хотите кэшировать страницу , которая отображает имя текущего пользователя. Если
использовать по умолчанию Любой параметр, имя первого лица , чтобы запросить страницу неправильно будет
отображаться для всех пользователей.
Чтобы избежать этого, настройки кэша вывода с помощью свойства Location установлен в Output
CacheLocation.Client и NoStore значение ИСТИНА , так что данные хранятся только в пользовательской
локальной веб - браузер:
[OutputCache (Длительность = 3600 , VaryByParam = " ни один " , Location = OutputCacheLocation.Client, NoStore = верно )] общественного ActionResult О () { ViewBag.Message = " Текущее имя пользователя " + User.Identity.Name; вернуться View (); }
Варьируя кэш вывода на основе параметров запроса
Например, у вас есть действие контроллера с именем деталь , который отображает подробную информацию
о аукционе:
[OutputCache (Длительность = INT .MaxValue, VaryByParam = " идентификатор " )] общественность ActionResult Подробности ( строка ID) { вар аукцион = _repository.Find <Аукцион> (идентификатор); вернуться View ( " Подробности " , аукцион); }
Воспроизводится в: https: //www.cnblogs.com/davidgu/p/3331699.html