为 MVC 6 中的异步操作生成空 link

Empty link generated for asynchronous Action in MVC 6

根据 this,旧的 MVC 支持异步操作,前提是它们满足一些签名要求。

我有以下操作:

    public async Task<IActionResult> ShowDataAsync()
    {
        await GetData();
        return View();
    }

    private async Task GetData()
    {
        eredmeny = await client.GetData();
        ViewBag.Eredmeny = eredmeny;
        RedirectToAction("ShowData", "Blog");
    }

我有以下查看代码:

@Html.ActionLink("Show data",actionName: "ShowData", controllerName: "Blog")

生成的 link 如下所示:

<a href="">Show data</a>

如果我将其更改为同步:

    public IActionResult ShowData()
    {
        GetData();
        return View();
    }

然后生成正确的 link:

<a href="/Blog/ShowData">Show data</a>

我应该设置什么以使 MVC 6 支持异步操作?

您的操作方法名称是 ShowDataAsync,您的视图代码需要反映该名称。

@Html.ActionLink("Show data",actionName: "ShowDataAsync", controllerName: "Blog")