Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.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
C# ASP.NET异步调用出现问题,正在等待处理程序返回_C#_Asp.net_Asp.net Ajax - Fatal编程技术网

C# ASP.NET异步调用出现问题,正在等待处理程序返回

C# ASP.NET异步调用出现问题,正在等待处理程序返回,c#,asp.net,asp.net-ajax,C#,Asp.net,Asp.net Ajax,我正试图为我的开发人员遇到的问题找到答案。我自己也不太清楚这件事 我们正在使用ASP.NET和C 当用户按下页面上的按钮时,我们调用hander将会话变量保存到表单的当前视图状态,其中包含一些使用的ID 然后,我们调用具有其他功能的灰盒窗口 因为这是异步的,所以greybox不会等待处理程序响应 在许多情况下,在会话变量保存到视图状态之前加载灰盒,在这种情况下,灰盒没有必要的ID 在本地主机上,速度足够快,我们从未意识到这个问题。在生产中,这是一个问题 正确的解决方案是什么?对服务器进行异步调用

我正试图为我的开发人员遇到的问题找到答案。我自己也不太清楚这件事

我们正在使用ASP.NET和C

当用户按下页面上的按钮时,我们调用hander将会话变量保存到表单的当前视图状态,其中包含一些使用的ID

然后,我们调用具有其他功能的灰盒窗口

因为这是异步的,所以greybox不会等待处理程序响应

在许多情况下,在会话变量保存到视图状态之前加载灰盒,在这种情况下,灰盒没有必要的ID

在本地主机上,速度足够快,我们从未意识到这个问题。在生产中,这是一个问题


正确的解决方案是什么?

对服务器进行异步调用以保存会话将向客户端返回响应。在服务器成功回复之前,不要启动greybox。如果只有一种情况导致表单上出现异步回发,则可以通过执行以下操作插入回复:

<script type="text/javascript">
    //<![CDATA[
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    prm.add_endRequest(endRequest);
    function endRequest(sender, e) {
        // Do stuff
    }
    //]]>
</script>

有关更复杂的场景,请参阅有关此主题的。

对服务器进行异步调用以保存会话将向客户端返回响应。在服务器成功回复之前,不要启动greybox。如果只有一种情况导致表单上出现异步回发,则可以通过执行以下操作插入回复:

<script type="text/javascript">
    //<![CDATA[
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    prm.add_endRequest(endRequest);
    function endRequest(sender, e) {
        // Do stuff
    }
    //]]>
</script>

有关更复杂的场景,请参阅关于此主题的。

您需要确保在AJAX请求的回调方法中运行其他代码

如果手动调用web服务或page方法,Sys.Net.webservicecoproxy.invoke方法将接受回调:


我觉得David建议的PageRequestManager只有在使用UpdatePanel执行AJAX请求时才起作用。

您需要确保在AJAX请求的回调方法中运行其他代码

如果手动调用web服务或page方法,Sys.Net.webservicecoproxy.invoke方法将接受回调:

我觉得David建议的PageRequestManager只有在使用UpdatePanel执行AJAX请求时才起作用