Blazor表单Select框选中选项后空白问题求助
解决Blazor Select框选中后空白或锁定的问题
问题根源在于你手动添加了selected属性,和Blazor的@bind双向绑定机制冲突了——Blazor会自动管理选中状态,手动设置selected会覆盖绑定逻辑,要么导致选中后空白,要么锁死在最后一个选项。
按下面的方式修改代码即可解决:
- 移除所有手动的
selected属性:删掉循环里<option>标签的selected属性,让Blazor通过@bind自动控制选中状态。 - 保证绑定类型与选项值匹配:第一个选项对应
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
相关产品推荐
相关产品推荐

