Кеширование в ASP.NET 5 в контроллере
Я пытаюсь кэшировать контроллер вывода, как я сделал в ASP.NET MVC 5.
Я сделал это в ASP.NET MVC 5 Controller:
[OutputCache(Duration = 60, VaryByParam = "*", Location = OutputCacheLocation.ServerAndClient)]
Теперь я пытаюсь это в ASP.NET 5 MVC 6:
Атрибут контроллера:
[ResponseCache(CacheProfileName = "TestCache")]
В моем Startup.cs:
//Caching
services.Configure<MvcOptions>(options => options.CacheProfiles.Add("TestCache", new CacheProfile()
{
Duration = 3600,
Location = ResponseCacheLocation.Any,
VaryByHeader = "*"
}));
Я добавил точку останова в свой TestController, но точка прерывания срабатывает каждый раз.
Как я могу это исправить?
1 ответ
Решение
Вы должны использовать новые атрибуты действий MVC, описанные здесь. Например
[ResponseCache(Duration=60)]
соответствует
[OutputCache(Duration = 60)]
Помещает HTTP заголовок
Cache-Control: public,max-age=60
в соответствующем HTTP-ответе.
Если вы предпочитаете использовать профили кэширования, вы найдете соответствующую информацию об использовании в той же статье (см. Здесь).