我正在构建一个MVC3应用程序,在用户导航离开页面时,我需要在几个页面上执行一些操作。
例如,如果用户位于第X页并单击任何其他链接,我需要执行操作A,B,C
到目前为止,我的实现使用过滤器并检测用户是否从第X页导航到任何其他页面。
除非用户在其他选项卡中打开第X页上的链接,否则此方法无效。即页面X仍处于打开状态,但用户已导航到另一页面并执行操作A,B,C。这不会发生,因为页面X仍处于打开状态。
我想知道是否有办法检测页面关闭甚至在页面X上,所以我只在页面关闭或卸载时执行操作?
答案 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?
});
});