gpt4 book ai didi

asp.net-core - 在评估 OnGetAsync 之前呈现 Razor 页面

转载 作者:行者123 更新时间:2023-12-05 02:03:32 24 4
gpt4 key购买 nike

下面的代码返回一个 ArgumentNullException:值不能为 null。 (参数“来源”) 错误。该错误由 Model.Players.Any() 引发。页面似乎是在评估文件隐藏代码之前呈现的。我相信错误一定与异步调用 OnGetAsync 有关,但我不知道如何修复它。使用 Visual Studio 调试我已经检查了 Players 属性的值并且评估正确(但是在 Razor 页面呈现之后 - 并抛出错误)

文件背后的代码(提取):

    public IEnumerable<Player> Players { get; set; }
public async void OnGetAsync()
{
IEnumerable<Club> clubs = await clubService.GetAllClubs();
IEnumerable<User> users = _userManager.Users;

Players = from user in users
join club in clubs on user.ClubId equals club.ClubId
orderby user.Name
select new Player
{
UserId = new Guid(user.Id),
Name = user.Name,
Surname = user.Surname,
DOB = user.DOB,
ClubId = club.ClubId,
ClubName = club.ClubName,
ClubLogo = club.ClubLogo
};
}

Pazor 页面(摘录):

    if (Model.Players.Any())
{
foreach (Player player in Model.Players.OrderBy(u => u.Name).ThenBy(u => u.Surname))
{
<div class="col-12 col-md-6 col-lg-4 col-xl-3 my-2">
<div class="card">
<div class="card-header d-inline-flex align-items-center">
<h6>@player.Name @player.Surname</h6>
@if (player.ClubLogo != null)
{
<img src="~/img/clublogos/@player.ClubLogo" height="30" class="mx-2" />
}
</div>
</div>
</div>
}
}
else
{
<h6>No players created yet</h6>
}

最佳答案

我已经解决了这个问题。

问题是 OnGetAsync 处理程序方法返回 void 而不是 Task

public IEnumerable<Player> Players { get; set; }
public async Task OnGetAsync()
{
IEnumerable<Club> clubs = await clubService.GetAllClubs();
IEnumerable<User> users = _userManager.Users;

Players = from user in users
join club in clubs on user.ClubId equals club.ClubId
orderby user.Name
select new Player
{
UserId = new Guid(user.Id),
Name = user.Name,
Surname = user.Surname,
DOB = user.DOB,
ClubId = club.ClubId,
ClubName = club.ClubName,
ClubLogo = club.ClubLogo
};
}

关于asp.net-core - 在评估 OnGetAsync 之前呈现 Razor 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65117623/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com