Si la acción del controlador tiene el atributo OutputCache especificado en una acción, ¿hay alguna manera de borrar el caché de salida sin tener que reiniciar IIS?Cómo borrar mediante programación el outputcache para el método de acción del controlador
[OutputCache (Duration=3600,VaryByParam="param1;param2")]
public string AjaxHtmlOutputMethod(string param1, string param2)
{
var someModel = SomeModel.Find(param1, param2);
//set up ViewData
...
return RenderToString("ViewName", someModel);
}
estoy mirando usando HttpResponse.RemoveOutputCacheItem(string path)
para desactivarla, pero estoy teniendo problemas para averiguar lo que la ruta debe ser hacer un mapa con el método de acción. Voy a intentarlo de nuevo con la página aspx que es renderizada por ViewName.
Posiblemente voy a insertar manualmente la salida de RenderToString
en el HttpContext.Cache
en su lugar, si no puedo resolver esto.
actualización
Tenga en cuenta que el OutputCache es VaryByParam, y prueba de un camino codificado "/ controlador/acción" en realidad no borrar la outputcache, por lo que parece que tiene que coincidir con "/ controlador/acción/param1/param2 ".
Eso significa que probablemente voy a tener que volver a objetar el almacenamiento en caché de nivel y almacenar en caché manualmente la salida de RenderToString()
:(
Trate de agregar 'location =" Server "' al atributo OutputCache - no puede borrar el caché del cliente del servidor –