Come posso sapere se l'utente ha premuto F5 per aggiornare la mia pagina (Qualcosa come la SO. Se aggiorni la pagina, il contatore delle domande non viene aumentato). Ho testato molti frammenti di codice menzionati in una dozzina di tutorial, ma nessuno ha funzionato correttamente.Rileva aggiornamento del browser
Per essere più chiari, supponiamo di avere un modulo Web vuoto e vorrei rilevare se l'utente ha premuto F5 sul lato client (causando un aggiornamento non inviato) o meno.
Posso usare le variabili di sessione, ma se l'utente naviga verso un'altra pagina del mio sito e poi torna indietro, mi piacerebbe considerarlo come una nuova visita, non un aggiornamento. quindi questa non è una variabile per lo scope di sessione.
Grazie.
Update: L'unica soluzione che ho trovato è stato quello di ereditare le mie pagine da una pagina di base, l'override del metodo di carico come di seguito:
public class PageBase : System.Web.UI.Page
{
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
this.Session["LastViewedPage"] = Request.RawUrl;
}
}
e in ogni pagina se ero interessato a sapere se questo è un aggiornamento:
if (this.Session["LastViewedPage"].ToString() == Request.RawUrl)
{
// This is a refresh!
}
si dice 'posso usare le variabili di sessione' così perché non solo memorizzare l'ultima pagina visitata? – tomfumb
Beacuse Devo memorizzarlo in ogni pagina. In realtà, forse non è una cattiva idea usare una pagina di base ... – Kamyar