2010-11-01 23 views
5

Carico la lista dei dati usando ajax e vista parziale (ascx) Ma ho un problema: la mia risposta è nella cache. provo a scrivere Responce.Cache.SetExpires (DateTime.Now.AddDays (-1)) in un file ascx, ma non è aiutatoasp.net mvc disabilita cache ajax

in ASP.NET WebForms Ho risolto questo scrivendo Responce.Cache.SetExpires (DateTime.Now.AddDays (-1)) in codebehind. Quindi mi piacerebbe sapere dove posso scrivere Responce.Cache.SetExpires (DateTime.Now.AddDays (-1)) per disabilitare la cache.

+0

non dovrebbe essere memorizzato nella cache a meno che non esplicitamente dite così sulla direttiva azione del controller. forse è il browser? ho sentito parlare cioè di cache ajax ottiene (ma non post). – RPM1984

+0

sì pagina viene memorizzata nella cache dal browser. Ma è facile da risolvere utilizzando SetExpires. Come posso impostare SetExpires con MVC? – takayoshi

risposta

12

Utilizzare jQuery?

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

o Controller/Azione set OutputCacheAttribute.

OutputCacheAttribute Class (System.Web.Mvc)

+0

In che modo esattamente OutputCacheAttribute aiuterà a disabilitare la cache ?? –

+0

Questo attributo controlla l'intestazione della risposta http (controllo della cache, scadenza ecc.). – takepara

+1

Intendevo dire che sarebbe stato utile fornire un esempio di codice su come utilizzare OutputCacheAttribute per questo: [OutputCache (NoStore = true, Duration = 0, VaryByParam = "*")] –

0

Si dovrebbe utilizzare un POST di posta per il metodo del controller che restituisce JsonResult se si desidera caricare dati dal server in modo asincrono.

+1

Se si * riceve * dati, * non * deve usare il POST. Guarda i metodi HTTP come CRUD: Post = Crea, Ottieni = Leggi, Inserisci = Aggiorna, Elimina = Elimina –

+0

Il commento di Arve non è corretto. ASP.Net MVC non supporta le operazioni REST ed è abbastanza accettabile utilizzare un metodo POST per recuperare i dati in base a un parametro. – dhochee

Problemi correlati