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

Blazor(.NET8)中Select控件Onchange事件无法触发的问题求助

解决Blazor Select控件@onchange事件不触发的问题

你的代码里有两个关键问题导致事件无法正常触发(或不符合预期),修复方法如下:

问题1:<option>缺少value属性

Blazor的Select控件需要每个<option>明确设置value属性,否则无法正确识别选中项,进而导致事件触发异常。给每个选项加上对应的值:

<select id="ABC" @onchange="GroupSelected">
    <option value="A">A</option>
    <option value="B">B</option>
    <option value="C">C</option>
</select>

问题2:事件方法冗余操作与不规范定义

  • Blazor在UI事件处理完成后会自动调用StateHasChanged()更新界面,手动调用完全多余,直接删除即可。
  • 虽然无参数的方法理论上能触发事件,但如果要获取选中值,建议接收ChangeEventArgs参数,这是更规范的写法,也能满足你后续扩展业务逻辑的需求。

修改后的@code部分:

@code
{
    string SelectedGroup = "Z";
    public void GroupSelected(ChangeEventArgs e)
    {
        // 获取选中的选项值
        var selectedValue = e.Value?.ToString();
        // 替换为你的业务逻辑
        SelectedGroup = $"当前选中:{selectedValue}";
    }
}

完整修复代码

@page "/"

<select id="ABC" @onchange="GroupSelected">
    <option value="A">A</option>
    <option value="B">B</option>
    <option value="C">C</option>
</select>
<hr />
<label>@SelectedGroup</label>

@code
{
    string SelectedGroup = "Z";
    public void GroupSelected(ChangeEventArgs e)
    {
        var selectedValue = e.Value?.ToString();
        SelectedGroup = $"当前选中:{selectedValue}";
    }
}

这样修改后,Select的@onchange事件就能正常触发,并且可以正确获取选中值执行你的业务逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 21:12:38