You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blazor表单Select框选中选项后空白问题求助

解决Blazor Select框选中后空白或锁定的问题

问题根源在于你手动添加了selected属性,和Blazor的@bind双向绑定机制冲突了——Blazor会自动管理选中状态,手动设置selected会覆盖绑定逻辑,要么导致选中后空白,要么锁死在最后一个选项。

按下面的方式修改代码即可解决:

  1. 移除所有手动的selected属性:删掉循环里<option>标签的selected属性,让Blazor通过@bind自动控制选中状态。
  2. 保证绑定类型与选项值匹配:第一个选项对应selectedGrade的null状态,保留它的value=""即可(对应int?类型的null)。

修改后的完整代码:

<label for="Grade">Choose a Grade:</label>
<select Name="Grade" id="Grade" @bind="selectedGrade">
    <option value="">---No Grade---</option>
    @foreach (var item in grade)
    {
        <option value="@item.Id">@item.GradeDescription</option>
    }
</select>

@code{
   private int? selectedGrade;
    private List<GradeTable> FilteredGrades => selectedGrade.HasValue ?
    grades.Where(s => s.Grade == selectedGrade.Value).ToList() :
    grades;
}

修改后逻辑:

  • 用户选择年级时,selectedGrade会自动被赋值为对应item.Id的值,Blazor会自动让对应的<option>处于选中状态并显示GradeDescription。
  • 选择---No Grade---时,selectedGrade会被设为null,符合变量的可空类型定义。

内容的提问来源于stack exchange,提问作者Kibofigs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 23:40:33