我有一个控制器,如下所示,它会触发一堆电子邮件:
public ActionResult Index()
{
ViewBag.Message = "Email Results.";
emailQueue.emailQueueCompleted += EmailsCompleted;
emailQueue.Run();
List<EmailError> emails = new List<EmailError>();
return View(emails);
}
但是 emailQueue.Run() 是一个异步任务,在呈现视图时尚未完成。当它随后完成时,它在下面的同一控制器中调用此方法:
public void EmailsCompleted(List<EmailError> errors)
{
if (errors.Count > 0)
{
// Do some stuff
// Re-render view with updated errors if possible
}
}
无论如何,我的问题是,在电子邮件队列完成其任务后,一旦我得到更新的错误列表,我是否可以轻松地在此控制器中重新渲染视图?或者,我是否应该等待电子邮件完成,然后再尝试最初呈现视图(请记住,这可能是一个相当长的耗时过程)。一如既往地欢迎提出建议,因为 MVC 通常不是我热衷于研究的领域。