【发布时间】:2015-04-26 01:54:13
【问题描述】:
我有一个控制器方法,它执行很长的操作并且几乎是这样编码的
[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 );
}
}
}
我在剃刀视图中从 jQuery 调用此方法。
在上一期中,我注意到该方法将执行时间增加到 5 分钟以上,并希望更改该方法的行为以支持不同的用法。 具体来说,我想立即向 UI 返回任务开始的通知,然后让 UI 监听任务完成事件。我想避免让 UI 轮询结果。有没有其他方法来处理这种情况?
【问题讨论】:
-
可能是WebSockets
标签: jquery asp.net-mvc asynchronous async-await