ASP.NET Núcleo 1.1 / 2.0 Resposta
Adicione a resposta cache middleware assim:
public void Configure(IApplicationBuilder application)
{
application
.UseResponseCaching()
.UseMvc();
}
Este conteúdo caches de middleware baseado nos cabeçalhos HTTP de cache que você definiu em sua resposta. Você pode dar uma olhada no resto da resposta para ver como usar ResponseCache.
ASP.NET Núcleo 1.0 Resposta
Use o novo ResponseCacheatributo em vez disso. ResponseCachenão é um substituto direto de OutputCachecomo ele só controla cliente e proxy cache usando o cabeçalho HTTP Cache-Control.
Se você quiser usar o cache do lado do servidor, consulte esta pergunta StackOverflow discutir como usar IMemoryCacheou IDistributedCache.
// Add this to your controller action.
[ResponseCache(Duration = 3600)]
Aqui está um exemplo usando os novos perfis de cache:
// Add this to your controller action.
[ResponseCache(CacheProfile="Cache1Hour")]
// Add this in Startup.cs
services.AddMvc(options =>
{
options.CacheProfiles.Add(
new CacheProfile()
{
Name = "Cache1Hour",
Duration = 3600,
VaryByHeader = "Accept"
});
});
gotchas
O middleware de cache resposta pára de funcionar em uma variedade de situações que você pode aprender mais sobre nos docs . Os dois mais comuns que você provavelmente vai bater são de que ele pára de funcionar se ele vê um Authorizationou Set-Cookiecabeçalho HTTP.
Bonus Comentário
Em ASP.NET 4.6, que poderia representar perfis de cache no web.config e alterar as configurações sem recompilar o código. Para mais informações sobre como você pode mover os perfis de cache para o novo config.json, ao invés de codificação que é difícil em Startup.cs ver esta questão.