.net核心失败async RedirectToAction

时间:2019-06-25 20:33:26

标签: c# asp.net-core async-await

我的运行时间较长,可能需要10到20分钟,并且正在尝试让.net核心中的异步等待工作。整个过程没有问题,只是返回成功或失败代码后,即使成功执行了该代码,它也不会执行RedirectToAction并位于同一页面上。

我正在从Webforms移植它,在这里效果很好。根据一些帖子,它似乎设置正确

代码

    public ActionResult Index()
    {
        //...
        JsonClasses.AllClasses model = ac;   
        var str1 = GetDataRefreshAsync(ac);

        return View(model);
    }


    public async Task<IActionResult> GetDataRefreshAsync(JsonClasses.AllClasses ac)
    {
        string putStr = "Put_DataRefresh";          
        return await MakePostApiCallAsyncF(apiServerName + putStr + "/", ac, putStr);           
    }



    private async Task<IActionResult> MakePostApiCallAsyncF(string url, dynamic Lobject, string className)
    {
        try
        {
            string myJson = JsonConvert.SerializeObject(Lobject);
            using (var client = new System.Net.Http.HttpClient())
            {
                client.Timeout = TimeSpan.FromMilliseconds(2000000);
                client.DefaultRequestHeaders.Clear();
                client.DefaultRequestHeaders.Accept.Clear();

                var response = await client.PostAsync(url, new System.Net.Http.StringContent(myJson, System.Text.Encoding.UTF8, "application/json"));

                string resultContent = await response.Content.ReadAsStringAsync();

                if (resultContent == "Failure")
                {
                    return RedirectToAction("Index", "Step4");

                }
                else
                {
                    return View();
                }


            }
        }
        catch (Exception e)
        {
            return View();

        }

    }

单步执行代码后,我没有得到任何错误。返回代码始终是“失败”(目前还可以),它会命中并完成redirectoAction行,但是它从不重定向到Step4视图,而是位于当前页面上。

0 个答案:

没有答案