我有做了長時間操作而幾乎是編碼這樣調用一個異步控制器的方法,並等待結果
[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