Blazor中单选按钮绑定异常问题排查求助
问题原因分析
你的问题核心在于绑定变量的定义方式:如果将绑定单选按钮的变量(比如你代码中的SelectedLetter)定义为字段而非自动属性,Blazor的状态变更检测机制无法感知到值的变化,导致第二次赋值后组件不会重新渲染,单选按钮的选中状态也就不会更新。
第一次输入"L"回车时,组件处于初始渲染阶段,字段赋值会触发初始渲染,因此单选按钮能正常选中;但当你点击U按钮后,再输入"L"回车时,字段的变化无法被Blazor捕获,组件不会重新渲染,单选按钮仍保持之前的选中状态。
解决方案
修正绑定变量定义:将字段改为自动属性,让Blazor能检测到值的变化:
// 错误写法(字段) // string SelectedLetter; // 正确写法(自动属性) string SelectedLetter { get; set; }简化输入框逻辑:直接使用Blazor的双向绑定替代手动处理输入和回车事件,这样输入框内容会即时同步到绑定变量,单选按钮也会自动更新:
<input type="text" @bind="SelectedLetter" /> @foreach (var letter in new[] { "L", "U", "N", "C", "H" }) { <input type="radio" @bind-Value="SelectedLetter" value="@letter" /> @letter }
内容的提问来源于stack exchange,提问作者Flippowitsch
相关产品推荐
相关产品推荐

