2010-11-01 28 views
5

Cargar la lista de datos utilizando ajax y vista parcial (ascx) Pero tengo un problema: mi respuesta está en caché. trato de escribir Responce.Cache.SetExpires (DateTime.Now.AddDays (-1)) en ascx pero no es ayudadoasp.net mvc deshabilitar caché ajax

en ASP.NET Web Forms He resuelto esto escribiendo Responce.Cache.SetExpires (DateTime.Now.AddDays (-1)) en código subyacente. Entonces me gustaría saber dónde puedo escribir Responce.Cache.SetExpires (DateTime.Now.AddDays (-1)) para desactivar el caché.

+0

no debe almacenar en caché a menos que se indique explícitamente que lo que en la Directiva acción del controlador. tal vez es el navegador? He oído hablar de que el caché de ajax se obtiene (pero no las publicaciones). – RPM1984

+0

la página sí está en la memoria caché del navegador. Pero es fácil de resolver usando SetExpires. ¿Cómo puedo configurar SetExpires con MVC? – takayoshi

Respuesta

12

¿Usar jQuery?

$.ajax({ 
cache:false, 
... 
}); 

o Conjunto de accionador/accion OutputCacheAttribute.

OutputCacheAttribute Class (System.Web.Mvc)

+0

¿Cómo exactamente OutputCacheAttribute ayudará a deshabilitar el caché? –

+0

Este atributo controla el encabezado de respuesta http (control de caché, caduca, etc.). – takepara

+1

Quise decir que sería bueno dar un ejemplo de código sobre cómo usar OutputCacheAttribute para eso: [OutputCache (NoStore = true, Duration = 0, VaryByParam = "*")] –

0

Debe utilizar ajax POST para el método del controlador que devuelve JsonResult si desea cargar datos del servidor de forma asincrónica.

+1

Si obtiene * datos *, no debe * usar * POST. Mire en los métodos HTTP como CRUD: Publicar = Crear, Obtener = Leer, Poner = Actualizar, Eliminar = Eliminar –

+0

El comentario de Arve no es correcto. ASP.Net MVC no admite operaciones REST, y es bastante aceptable utilizar un método POST para recuperar datos en función de un parámetro. – dhochee