Annullare la durata di OutputCache a livello di codice in asp.net mvc
-
05-07-2019 - |
Domanda
Sto usando l'attributo OutputCache per memorizzare nella cache l'output html della mia azione sul lato server.
Bene, funziona, ma ora ho una situazione in cui il contenuto cambia raramente, ma quando lo fa, è fondamentale per l'utente vedere i nuovi dati alla richiesta successiva.
Quindi, c'è un modo per interrompere programmaticamente la durata della cache della pagina?
Soluzione
Sì, è possibile utilizzare HttpResponse.RemoveOutputCacheItem Method . Controlla questa domanda:
Altri suggerimenti
È possibile estendere OutputCacheAttribute per creare il proprio meccanismo cache che consenta una dipendenza simile alla cache ASP.net originale.
Puoi anche utilizzare HttpCachePolicy.AddValidationCallback () . L'idea generale è che quando la pagina viene renderizzata e inserita nella cache, questo callback viene inserito insieme alla pagina. Al momento del recupero della pagina dalla cache, viene richiamato il callback e si determina definitivamente se la pagina memorizzata nella cache è obsoleta (e deve essere avviata) o valida (e deve essere pubblicata). Per un esempio, vedere la AuthorizeAttribute source per un esempio. Se una pagina che diventa obsoleta è davvero rara, tuttavia, potresti essere meglio servito dal metodo RemoveOutputCacheItem () come menzionato nell'altra risposta.