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中(事实上,在其他地方似乎也有效)哦,哇,我是个白痴!我不敢相信我没发现。谢谢。哦,哇,我是个白痴!我不敢相信我没发现。谢谢。