我有做了长时间操作而几乎是编码这样调用一个异步控制器的方法,并等待结果
[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](https://developer.mozilla.org/en/docs/WebSockets) – 2015-02-24 12:31:59