Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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 调用异步控制器方法并等待结果_Jquery_Asp.net Mvc_Asynchronous_Async Await - Fatal编程技术网

Jquery 调用异步控制器方法并等待结果

Jquery 调用异步控制器方法并等待结果,jquery,asp.net-mvc,asynchronous,async-await,Jquery,Asp.net Mvc,Asynchronous,Async Await,我有一个控制器方法,它可以执行长时间的操作,并且几乎是这样编码的 [HttpPost] [ValidateAntiForgeryToken] public async Task<ActionResult> MyLongMethodAsync( MyViewModel model ) { if ( ModelState.IsValid ) { try { await _service.DoLongTaskAsync( model );

我有一个控制器方法,它可以执行长时间的操作,并且几乎是这样编码的

[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> MyLongMethodAsync( MyViewModel model ) {
    if ( ModelState.IsValid ) {
        try {
            await _service.DoLongTaskAsync( model );
            return RedirectToAction( "LongTaskResult", new { id = model.TaskID } );
        }
        catch ( Exception e ) {
            HandleErrorViewModel he = new HandleErrorViewModel( e.Message );
            return View( "HandleError", he );
        }
    }
}
[HttpPost]
[ValidateAntiForgeryToken]
公共异步任务MyLongMethodAsync(MyViewModel模型){
if(ModelState.IsValid){
试一试{
wait_service.DoLongTaskAsync(模型);
返回RedirectToAction(“LongTaskResult”,new{id=model.TaskID});
}
捕获(例外e){
HandleErrorViewModel he=新的HandleErrorViewModel(如消息);
返回视图(“HandleError”,he);
}
}
}
我在razor视图中从jQuery调用此方法

在上一阶段中,我注意到该方法将执行时间增加到5分钟以上,并且希望更改该方法的行为以支持不同的用法。
具体来说,我希望立即向UI返回任务已启动的通知,然后让UI侦听任务已完成事件。我希望避免使用UI来轮询结果。有没有其他方法来处理这种情况?

服务器端的
异步等待
的目的是不浪费可以为其他请求服务的线程,而不是同步等待


这不会改变客户端和服务器之间的交互。为此,您需要另一种解决方案。我认为这是当今首选的解决方案,因为它内置了对客户端(JS)和服务器(ASP.Net)的支持但也有其他选项,例如XSockets。

服务器端的
异步等待
服务于它的目的,即不浪费可能服务于其他请求而不是同步等待的线程


这不会改变客户端和服务器之间的交互。为此,您需要另一种解决方案。我认为这是当今首选的解决方案,因为它内置了对客户端(JS)和服务器(ASP.Net)的支持但也有其他选项,例如XSockets。

服务器端的
异步等待
服务于它的目的,即不浪费可能服务于其他请求而不是同步等待的线程


这不会改变客户端和服务器之间的交互。为此,您需要另一种解决方案。我认为这是当今首选的解决方案,因为它内置了对客户端(JS)和服务器(ASP.Net)的支持但也有其他选项,例如XSockets。

服务器端的
异步等待
服务于它的目的,即不浪费可能服务于其他请求而不是同步等待的线程


这不会改变客户端和服务器之间的交互。为此,您需要另一种解决方案。我认为这是目前首选的解决方案,因为它内置了对客户端(JS)和服务器(ASP.Net)的支持,但也有其他选项,例如XSockets。

可能感谢您的建议。直到那时才知道信号员的事now@Lorenzo当然随时可以。谢谢你的建议。直到那时才知道信号员的事now@Lorenzo当然随时可以。谢谢你的建议。直到那时才知道信号员的事now@Lorenzo当然随时可以。谢谢你的建议。直到那时才知道信号员的事now@Lorenzo当然随时都可以。