OnGet 中的 async 不会等待函数结束并会转到 razor 文件吗?

lia*_*ood 2 asp.net-core

asp.net core web 3.1在DownloadOrder.cshtml.cs中有一个async OnGet函数。

public async void OnGet(int? pageIndex)
    {
        var list = GetProductList(pageIndex);

        PaginatedList = await PaginatedList<Models.OrderProduct>.CreateAsync(list, PageIndex, 10);
    }
Run Code Online (Sandbox Code Playgroud)

但有时它不会等待该OnGet函数,而是会转到DownloadOrder.cshtml razor 文件。

@foreach (var item in Model.PaginatedList)
                {
                    <tr>
                        <td>@item.OrderID</td>
                        <td>@item.ProductID</td>
                        <td>@item.ProductName</td>
                    </tr>
                }
Run Code Online (Sandbox Code Playgroud)

会有一个例外,TheModel.PaginatedList为 null。似乎await没有等待,将首先转到razor html,然后转到该await函数。

lia*_*ood 7

我知道为什么。应该async Task OnGet不是async void OnGet

我不知道为什么。