在asp.net mvc3中检测页面关闭(或卸载)

kes*_*hav 5 asp.net httprequest asp.net-mvc-3

我正在构建一个MVC3应用程序,在用户导航离开页面时,我需要在几个页面上执行一些操作.

例如,如果用户在页面X上并单击任何其他链接,则需要执行操作A,B,C

到目前为止,我的实现使用过滤器并检测用户是否从第X页导航到任何其他页面.

除非用户在其他选项卡中打开第X页上的链接,否则此方法有效.即,页面X仍然是打开的,但用户已导航到另一页面并执行动作A,B,C.这不会发生,因为页面X仍处于打开状态.

我想知道是否有办法检测页面关闭甚至在页面X上,所以我只在页面关闭或卸载时执行操作?

Tra*_*s J 5

您可以使用jQuery的.unload功能与ajax帖子配对,从前端完成此操作.

$(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?
    });
});
Run Code Online (Sandbox Code Playgroud)