Кеширование в 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-ответе.

Если вы предпочитаете использовать профили кэширования, вы найдете соответствующую информацию об использовании в той же статье (см. Здесь).

Другие вопросы по тегам