O cache de resposta não funciona no método a seguir, que retorna a visualização contendo um elemento do formulário. Se o elemento do formulário for removido da visualização, o cache de resposta funcionará. porque isso está acontecendo?
`` `
[Rota ("Contato")]
[ResponseCache (Duration = 3600)] // Não funciona para este método
contato público IActionResult ()
{
return View ();
}
[HttpPost]
[Route("Contact")]
public IActionResult Contact(ContactViewModel contactViewModel, IFormFile attachment)
{
//Necessary opertaion goes here
return
View(contactViewModel);
}
`` `
Observe os cabeçalhos de resposta. Isso está acontecendo porque o formulário tem o anti-falsificação ativado, que sempre define cabeçalhos sem cache?
@Tratcher Sim! o anti-falsificação foi ativado e é por isso que o cache de resposta não estava funcionando. Minha pergunta é por que o cache de resposta não funciona quando o anti-falsificação está ativado?
O token anti-falsificação no formulário é anexado a um cookie e não deve ser armazenado em cache, caso contrário, eles podem ficar fora de sincronia.
Comentários muito úteis
O token anti-falsificação no formulário é anexado a um cookie e não deve ser armazenado em cache, caso contrário, eles podem ficar fora de sincronia.