Esta pregunta está relacionada con my other question.¿MVC OutputCaching tiene preferencia sobre la configuración de los encabezados de respuesta de caché?
Tengo una aplicación MVC con el almacenamiento en caché desactivado para todas las acciones del controlador. Hago esto mediante el establecimiento de cabeceras de respuesta en caché Application_BeginRequest
:
protected void Application_BeginRequest()
{
HttpContext.Current.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
HttpContext.Current.Response.Cache.SetValidUntilExpires(false);
HttpContext.Current.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
HttpContext.Current.Response.Cache.SetNoStore();
}
Hay acción único controlador para el que yo quiero almacenamiento en caché habilitado. He decorado esta acción con el atributo OutputCache
:
[OutputCache(Duration = 300, VaryByParam = "id")]
¿Qué pasa ahora para esta acción? ¿Se almacena en caché debido al atributo OutputCache o no se almacena en caché debido a los encabezados de respuesta?
- EDITAR -
Por lo que parece, las cabeceras de respuesta tienen preferencia. Entonces mi pregunta es: ¿cómo puedo habilitar el caché para acciones de controlador único? ¿Sobrescribir los encabezados de respuesta nuevamente?
Esto es parcialmente cierto. El [OutputCacheLocation.Any value from MSDN] (http://msdn.microsoft.com/en-us/library/system.web.ui.outputcachelocation.aspx): "El caché de salida se puede ubicar en el cliente del navegador (donde la solicitud se originó), en un servidor proxy (o cualquier otro servidor) que participe en la solicitud, o en el servidor donde se procesó la solicitud ". Entonces, ¿qué pasará con el caché del cliente en este caso? – Carvellis