5

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

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

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

这有效,除非用户在另一个选项卡中打开页面 X 上的链接。即页面 X 仍然打开,但用户已导航到另一个页面和操作 A、B、C 并执行。这不会发生,因为页面 X 仍然打开。

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

4

1 回答 1

5

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

$(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?
    });
});
于 2012-04-22T18:39:54.710 回答