出现这种情况可能是因为 Blazor 绑定引擎在处理选项时遇到了问题,可以通过手动刷新选项来解决。
代码示例:
在组件中添加以下代码:
@inject IJSRuntime JsRuntime;
@code{
private List
protected override async Task OnInitializedAsync()
{
options.AddRange(GetOptions());
myValue = options.FirstOrDefault()?.Value;
}
private void RefreshOptions()
{
options = GetOptions();
// 找到当前选中项并刷新绑定值
var selectElement = JsRuntime.InvokeAsync("document.getElementById", "mySelect").Result;
var selectedIndex = (int)selectElement.GetProperty("selectedIndex");
myValue = options.ElementAt(selectedIndex)?.Value;
StateHasChanged();
}
private List GetOptions()
{
// 从服务端获取选项列表的逻辑
}
}
在需要刷新选项的地方,调用 RefreshOptions() 方法即可。