C# 绑定变量未在UI中显示新值

C# 绑定变量未在UI中显示新值,c#,blazor,blazor-server-side,C#,Blazor,Blazor Server Side,我的页面中有以下代码: @if(players==null) { 加载 } 其他的 { 玩家数量:@Players.Count 团队数量:@teamscont 超额玩家:@ExcessPlayer } @代码{ 私人名单玩家; private int teamscont{get;set;} 私有int excessPlayers{get;set;} 受保护的重写异步任务OnInitializedAsync() { players=wait_db.GetPlayers(); int teamsco

我的页面中有以下代码:

@if(players==null)
{
加载

} 其他的 { 玩家数量:@Players.Count

团队数量:@teamscont

超额玩家:@ExcessPlayer

} @代码{ 私人名单玩家; private int teamscont{get;set;} 私有int excessPlayers{get;set;} 受保护的重写异步任务OnInitializedAsync() { players=wait_db.GetPlayers(); int teamscont=玩家。计数/5; int excessPlayers=玩家。计数%5; }
加载的html会正确显示一段时间,然后
玩家。Count
会正确更新并显示41,但
teamscont
excessPlayers
始终显示0

我已尝试在OnInitializedAsync()的末尾调用
StateHasChanged()

我还尝试过在一个单独的方法中设置
teamscont
excessPlayers
,并调用
statehaschange()
但这两个都不起作用。
teamscont
excessPlayers
仍然显示为0,尽管我可以在代码中看到它们分别是8和1,这是正确的


我做错了什么?

您正在为
OnInitializedAsync
方法中的
TeamScont
ExcessPlayer
创建新的局部变量:

protected override async Task OnInitializedAsync()
{
    players = await _db.GetPlayers();

    int teamsCount = players.Count / 5;
    int excessPlayers = players.Count % 5;
}
您应该改为设置属性的值:

protected override async Task OnInitializedAsync()
{
    players = await _db.GetPlayers();

    teamsCount = players.Count / 5;
    excessPlayers = players.Count % 5;
}

您正在为
OnInitializedAsync
方法中的
teamscont
excessPlayers
创建新的局部变量:

protected override async Task OnInitializedAsync()
{
    players = await _db.GetPlayers();

    int teamsCount = players.Count / 5;
    int excessPlayers = players.Count % 5;
}
您应该改为设置属性的值:

protected override async Task OnInitializedAsync()
{
    players = await _db.GetPlayers();

    teamsCount = players.Count / 5;
    excessPlayers = players.Count % 5;
}

团队数量:@(players.Count/5)

如何?这确实有效,它将按预期显示8。但是,我想了解为什么在代码中设置变量没有像我预期的那样反映在UI中(事实上,在其他地方似乎有效)。团队数量:@(players.Count/5)如何

?这确实有效,它将如预期的那样显示8。但是,我想了解为什么在代码中设置变量没有像我预期的那样反映在UI中(事实上,在其他地方似乎也有效)哦,哇,我是个白痴!我不敢相信我没发现。谢谢。哦,哇,我是个白痴!我不敢相信我没发现。谢谢。