2012-04-22 2 views
5

Sto creando un'applicazione MVC3 e in alcune pagine devo eseguire alcune azioni quando l'utente si allontana dalla pagina.rilevamento della chiusura (o scaricamento) della pagina in asp.net mvc3

Per esempio, se l'utente si trova a pagina X e fa clic qualsiasi altro link che ho bisogno di eseguire azioni A, B, C

L'implementazione che ho finora utilizza filtri e rileva se l'utente passa a qualsiasi altra pagina da pagina X.

Questo funziona, eccetto se l'utente apre il collegamento nella pagina X nella scheda altro. la pagina X è ancora aperta ma l'utente ha navigato verso un'altra pagina e le azioni A, B, C e eseguite. Questo non suppone che accada poiché la pagina X è ancora aperta.

Mi chiedevo se c'è modo di rilevare la chiusura della pagina anche sulla pagina X, quindi eseguo l'azione solo quando la pagina viene chiusa o scaricata?

+0

Perché non tenere traccia di quali pagine sono aperte? –

+0

Hmm ... ma ho ancora il problema di rilevare quando la pagina è chiusa. Questo è il mio problema principale non sono abbastanza sicuro di come rilevare la chiusura della pagina. – keshav

risposta

5

È possibile utilizzare la funzionalità di jQuery .unload abbinata a un post ajax per eseguire questa operazione dal front-end.

$(window).unload(function() { 
//ajax post to controller action 
$.ajax({ 
     type: 'POST', 
     url: '/Controller/Action', 
     data : { param1 : "value1", param2: "value2" }, 
     dataType: 'html', 
     success: //do what needs to be done here, alert? 
    }); 
});