代码之家  ›  专栏  ›  技术社区  ›  Morten_564834

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

  •  0
  • Morten_564834  · 技术社区  · 7 年前

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

    控制器启动一个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.
            }
    
        }
    

    现在,控制器的行动当然是没有道理的,因为你不能返回后返回,但希望你能看到我将在哪里:“我怎么能报告”回来? 之前 返回视图?

    谢谢

    0 回复  |  直到 7 年前
    推荐文章