我有一个需要填写不同字符串字段的表单和下面的提交按钮。
控制器启动一个RunBooad并返回结果-这个结果可能需要一些时间依赖于RunBook的复杂性。我希望能够立即报告用户,如果用户成功启动,然后返回状态和输出。
但是mvc只能返回一次视图。
我想实现类似的目标:
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Submit(Dictionary<string, string> inputs)
{
//Start runbook and return job
var job = await _customAzureOperations.StartRunbook(_resourceGroup, _automationAccount, _runbookName, inputs);
//return view
if (job != null && job.Status == JobStatus.Completed)
{
TempData["JobStatus"] = "Success";
return View("Index");
//moving on.. HOW CAN I DO THIS?
var result = await _customAzureOperations.GetResultsFromJob(job); //this could take a while
TempData["JobResult"] = result;
return View("Index");
}
else
{
return View("Index", TempData["JobStatus"] = "Error"); //todo: show exception etc.
}
}
现在,控制器的行动当然是没有道理的,因为你不能返回后返回,但希望你能看到我将在哪里:“我怎么能报告”回来?
之前
返回视图?
谢谢