O IE está muito ansioso para armazenar as páginas em cache, mesmo quando você diz que não via cabeçalhos de cache. A Microsoft KB 234067 explica os encantamentos necessários. Em suma, você precisa entregar os seguintes cabeçalhos.
Pragma: no-cache
Cache-Control: no-cache
Expires: <some time in the past>
A configuração de Expires = -1
(conforme recomendado no artigo da base de conhecimento) deve funcionar para a maioria das estruturas; os navegadores são obrigados a tratar formatos de data inválidos como sendo no passado ( RFC 2616 ).
No .NET, você pode fazer isso em uma granularidade página por página usando esse conjunto de métodos antes de chamar a página da Web:
HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
HttpContext.Response.Cache.SetValidUntilExpires(false);
HttpContext.Response.Cache.SetRevalidation(System.Web.HttpCacheRevalidation.AllCaches);
HttpContext.Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
HttpContext.Response.Cache.SetNoStore();
veja:
link
Funciona bem para o MVC3.0.