#c# #asp.net #asp.net-mvc #asp.net-mvc-4
#c# #asp.net #asp.net-mvc #asp.net-mvc-4
Вопрос:
Один из моих проектов MVC близок к завершению. Мы пытаемся оптимизировать проект с помощью кэша вывода.
Однако мы обнаружили, что существует так много контроллеров с еще большим количеством действий. Мы не думаем, что добавлять атрибут кэша вывода к каждому действию — хорошая идея.
Есть ли какое-либо решение, с помощью которого я мог бы добавить кэш вывода к каждому действию за один раз?
Комментарии:
1. используйте ‘BaseController’ и наследуйте все контроллеры от BaseController. Вы можете использовать OutputCache для BaseController, который будет применяться ко всем дочерним контроллерам. Таким образом, вы можете избежать указания для каждого действия.
Ответ №1:
Добавьте его в глобальные фильтры.
filters.Add(new OutputCacheAttribute
{
NoStore = true,
Duration = 0,
VaryByParam = "*"
});
Вы можете сделать это в FilterConfig.cs
файле в App_Start
папке.
Комментарии:
1. Вы все герои
2. @JackHe Рад помочь …:)
Ответ №2:
Используйте глобальные фильтры в FilterConfig.cs
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
OutputCacheAttribute cache = new OutputCacheAttribute();
//set other properties
filters.Add(cache);
}