【问题标题】:.NET MVC - "beforeunload" event with server-side check [duplicate].NET MVC - 带有服务器端检查的“beforeunload”事件[重复]
【发布时间】:2017-03-08 17:40:40
【问题描述】:

在我的 MVC 应用程序中,当用户离开某个页面时,我需要使用如下警告提示他们:

    $(window).on("beforeunload", function () {
         return "You will lose changes, are you sure?"
    });

这个 jquery 有效,但首先我需要检查是否应该首先警告用户。此检查很复杂,需要在服务器端执行(我一直在努力寻找这样的示例)。有可能吗?

我尝试了一个 ajax 帖子:

$(window).on("beforeunload", function () {
    $.ajax({
        type: "POST",
        url: "@Url.Action("SaveCheck")",
        async: false
        success: function (result) {
            //return a string here if saving required
        }
    });
});

但这不像上面那样工作 - “beforeunload”函数已经返回并且不关心 ajax 发布的结果。

有什么方法可以使用服务器计算的标志来检查用户在退出之前是否应该被警告?

这个答案看起来很相关,但不允许您在“beforeunload”函数中使用 ajax 调用的结果,因此您无法警告用户:window.onbeforeunload ajax request in Chrome

【问题讨论】:

  • 您可能需要等待 ajax 调用返回的承诺完成。看到这个答案:stackoverflow.com/questions/16814416/…
  • @Pelle 承诺技术非常有效,谢谢!如果你想添加一个答案,我会接受它给你代表。
  • 太棒了!我添加了我的答案。

标签: jquery asp.net-mvc


【解决方案1】:

您可能需要等待 ajax 调用返回的承诺完成。看到这个答案:Jquery promise wait to ajax end

【讨论】:

    猜你喜欢
    • 2013-09-30
    • 1970-01-01
    • 2020-10-21
    • 2021-07-16
    • 2012-12-12
    • 1970-01-01
    • 1970-01-01
    • 2014-03-18
    • 1970-01-01
    相关资源
    最近更新 更多