在ASP.NET MVC3中检测页面关闭(或卸载)

5
我正在构建一个MVC3应用程序,在一些页面上,当用户离开该页面时需要执行某些操作。
例如,如果用户在页面X上,点击任何其他链接,我需要执行操作A、B、C。
到目前为止,我使用过滤器来实现,并检测用户是否从页面X导航到任何其他页面。这种方法有效,除了当用户在另一个标签页中打开页面X时。即使页面X仍然打开,用户已经导航到另一个页面并执行了操作A、B、C,这是不应该发生的。
我想知道是否有办法在页面X上检测页面关闭,这样我只需要在页面关闭或卸载时执行操作?

为什么不在会话中跟踪打开的页面? - Travis J
嗯...但我仍然有检测页面关闭的问题。这是我的主要问题,我不太确定如何检测页面关闭。 - keshav
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?
    });
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接