Кэширование в ASP.NET 5 в контроллере


Я пытаюсь кэшировать выходной контроллер, как я сделал в ASP.NET MVC 5.

Я сделал это в ASP.NET контроллер MVC 5:

 [OutputCache(Duration = 60, VaryByParam = "*", Location = OutputCacheLocation.ServerAndClient)]

Теперь я пытаюсь это сделать. ASP.NET 5 MVC 6:

Атрибут Контроллера:

[ResponseCache(CacheProfileName = "TestCache")]

В моем стартапе.cs :

//Caching
            services.Configure<MvcOptions>(options => options.CacheProfiles.Add("TestCache", new CacheProfile()
            {
                Duration = 3600,
                Location = ResponseCacheLocation.Any,
                VaryByHeader = "*"
            }));

Я добавил точку останова в мой TestController, но breakboint запускается каждый раз.

Как я могу это исправить?

1 3

1 ответ:

Вы должны использовать новые атрибуты действий MVC, описанных здесь. Например

[ResponseCache(Duration=60)]

Соответствует

[OutputCache(Duration = 60)]

Он помещает заголовок HTTP

Cache-Control: public,max-age=60

В соответствующем HTTP-ответе.

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