/ / Não é possível limpar o cache MVC do C # - c #, armazenamento em cache, controlador de exibição de modelo, cache do navegador

Não é possível limpar o cache MVC do C # - c #, armazenamento em cache, controlador de exibição de modelo, cache do navegador

Eu uso essas configurações na minha web.arquivo de configuração e meu navegador de clientes armazenou em cache meus resultados do método do controlador MVC? Como e por quê? Minha configuração não tem como alvo as exibições cshtml ou Razor. E o que posso fazer agora para limpar o cache do navegador dos meus clientes?

<system.webServer>
<caching>
<profiles>
<add extension=".png" policy="CacheUntilChange" varyByHeaders="User-Agent" location="Client"/>
<add extension=".gif" policy="CacheUntilChange" varyByHeaders="User-Agent" location="Client"/>
<add extension=".jpg" policy="CacheUntilChange" varyByHeaders="User-Agent" location="Client"/>
<add extension=".js" policy="CacheUntilChange" varyByHeaders="User-Agent" location="Client"/>
<add extension=".css" policy="CacheUntilChange" varyByHeaders="User-Agent" location="Client"/>
</profiles>
</caching>
<httpProtocol allowKeepAlive="true">
<customHeaders>
<add name="Cache-Control" value="public, max-age=691200"/>
</customHeaders>
</httpProtocol>

Respostas:

0 para resposta № 1

Você pode fazer isso programaticamente, tente isto: Coloque isso no seu modelo:

public class NoCache : ActionFilterAttribute
{
public override void OnResultExecuting(ResultExecutingContext filterContext)
{
filterContext.HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
filterContext.HttpContext.Response.Cache.SetValidUntilExpires(false);
filterContext.HttpContext.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
filterContext.HttpContext.Response.Cache.SetNoStore();

base.OnResultExecuting(filterContext);
}
}
and on your specific controller: e.g:

[NoCache]
[Authorize]
public ActionResult Home()
{
////////...
}

Código retirado de: Como limpar o cache no controlador especificado no asp mvc?


-1 para resposta № 2

Uma solução seria definir o número da versão após os arquivos .css, .js, .gif em seu projeto. Eu sei que isso é mudanças maciças no sistema. É assim que você pode liberar o cache em máquinas clientes

Algo assim

script.css?v=1.0 // This is the URL for release 1.0

Espero que ajude. Boa sorte.