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

时间:2012-04-22 18:16:19

标签: asp.net asp.net-mvc-3 httprequest

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

例如,如果用户位于第X页并单击任何其他链接,我需要执行操作A,B,C

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

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

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

1 个答案:

答案 0 :(得分: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?
    });
});