Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery .NET MVC-“的;“卸载前”;带有服务器端检查的事件_Jquery_Asp.net Mvc - Fatal编程技术网

Jquery .NET MVC-“的;“卸载前”;带有服务器端检查的事件

Jquery .NET MVC-“的;“卸载前”;带有服务器端检查的事件,jquery,asp.net-mvc,Jquery,Asp.net Mvc,在我的MVC应用程序中,当用户离开某个页面时,我需要向他们发出如下警告: $(window).on("beforeunload", function () { return "You will lose changes, are you sure?" }); 这个jquery可以工作,但首先我需要检查是否应该首先警告用户。这个检查很复杂,需要在服务器端执行(我很难找到一个这样的例子)。可能吗 我试过一篇ajax帖子: $(window).on("beforeu

在我的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调用的结果,因此您不能警告用户:

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

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