多次返回视图或如何动态更新视图

时间:2018-08-06 13:06:19

标签: asp.net model-view-controller asp.net-core

我有一个要填写的字符串字段不同的表单,下面有一个提交按钮。

控制器启动一本运行手册并返回结果-该结果可能需要一些时间,具体取决于运行手册的复杂性。我希望能够立即向用户报告运行簿是否成功启动,然后过一会儿返回状态和输出。

但是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.
        }

    }

现在,控制器动作当然是没有意义的,因为您不能在返回后返回,但是希望您能看到我要去的地方:)如何在“ ”之前“报告” 返回视图?

谢谢

0 个答案:

没有答案