2012-04-22 9 views
5

Estoy construyendo una aplicación MVC3 y en algunas páginas necesito realizar algunas acciones cuando el usuario navega fuera de la página.detección de página cerca (o descarga) en asp.net mvc3

Por ejemplo, si el usuario se encuentra en la página X y hace clic en cualquier otro enlace que necesito para llevar a cabo las acciones A, B, C

La puesta en práctica hasta ahora he usa filtros y detecta si el usuario navega a cualquier otra página desde la página X.

Esto funciona, excepto si el usuario abre el enlace en la página X en la pestaña anterior. es decir, la página X todavía está abierta pero el usuario ha navegado a otra página y las acciones A, B, C y se han realizado. Esto no debe suceder ya que la página X todavía está abierta.

Me preguntaba si hay forma de detectar el cierre de página incluso en la página X, así que solo realizo la acción cuando la página está cerrada o descargada.

+0

¿Por qué no rastrear en la sesión qué páginas están abiertas? –

+0

Hmm ... pero todavía tengo el problema de detectar cuando la página está cerrada. Ese es mi principal problema, no estoy muy seguro de cómo detectar el cierre de la página. – keshav

Respuesta

5

Puede usar la funcionalidad .unload de jQuery combinada con una publicación ajax para lograr esto desde la interfaz.

$(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? 
    }); 
});