2009-05-07 28 views
14

Ho un sito Web asp.net che sta utilizzando i pannelli di aggiornamento nella pagina che non riesco a ricaricare dal server. Ho questo per disabilitare la cache della pagina sulla pagina principale.Disabilita cache della pagina per forzare il caricamento della pagina con il pulsante Indietro del browser

 Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1)) 
    Response.Cache.SetValidUntilExpires(False) 
    Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches) 
    Response.Cache.SetCacheability(HttpCacheability.NoCache) 
    Response.Cache.SetNoStore() 

Quando faccio clic sul pulsante Indietro del browser per tornare alla pagina, si dice che la pagina è scaduta. Le altre pagine del mio sito web funzionano e chiamano il caricamento della pagina, l'unica soluzione che ho trovato ma non posso usare è di scrivere l'intera pagina in un pannello di aggiornamento, ma non posso farlo perché ho un visualizzatore di report sulla pagina che non funziona con Ajax. Se qualcuno può aiutare lo apprezzerei profondamente.

+1

Il messaggio di pagina scaduto dal browser indica che sono stati inviati alcuni dati di postback. Alcuni browser chiedono all'utente, se vogliono re-inviarlo, alcuni non chiedono. – jor

risposta

0

Basta aggiungere questo nel file di visualizzazione nella parte di intestazione:

<head> 
<script language="JavaScript"> 
<!-- 
javascript:window.history.forward(1); 
//--> 
</script> 
</head> 

All'interno tag body aggiungere questo:

<body onUnload="OperaReload()"> 
<input type="hidden" id="refreshed" value="no"> 
0

per ricaricare la pagina con JavaScript utilizzare il seguente:

window.location.replace(window.location.pathname); 
1

Questo non è un problema di cache del browser; è un postback. Devi implementare il modello Post/Redirect/Get per evitare il messaggio "vuoi inviare di nuovo?/Pagina scaduta".

http://en.wikipedia.org/wiki/Post/Redirect/Get

L'esempio classico per questa cosa è quando una pagina web ha un pulsante di salvataggio che inserire qualcosa in un database. Viene cliccato il pulsante "Salva" -> si verifica un postback -> il codice inserisce una riga in una tabella -> l'utente aggiorna la pagina (F5) -> il postback si verifica nuovamente -> il codice inserisce nuovamente la stessa riga.

Per evitare il doppio inserimento nell'esempio precedente, è necessario reindirizzare quando si preme il pulsante "Salva" e solo successivamente, eseguire l'inserimento.

Problemi correlati