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

Blazor组件EventCallback获取ChangeEventArgs值:重构后值为null

Blazor下拉组件ChangeEventArgs为空的解决方法

你需要在组件内部的@onchange事件中正确接收并传递ChangeEventArgs参数,才能让父页面拿到非空的事件数据。

修改后的组件完整代码

Razor模板部分

<select class="form-control" @onchange="@((ChangeEventArgs e) => Location_OnChange.InvokeAsync(e))">
    <option value="-1">All Locations</option>
    @if (Locations != null)
    {
        @foreach (var location in Locations)
        {
            <option value="@location.Id">@location.Description</option>
        }
    }
</select>

代码逻辑部分

@code {
    [Parameter]
    public EventCallback<ChangeEventArgs> Location_OnChange { get; set; }

    [Parameter]
    public IList<Location>? Locations { get; set; }
}

关键要点

  • 组件内的@onchange需要显式接收ChangeEventArgs参数((ChangeEventArgs e)),再通过InvokeAsync(e)把参数传递给父组件的回调
  • 也可以用更简洁的写法,直接将EventCallback绑定到@onchange,Blazor会自动处理参数传递:
    <select class="form-control" @onchange="Location_OnChange">
    

这样修改后,父页面的Location_OnChange方法就能拿到正常的ChangeEventArgs,通过e.Value获取选中项的数值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 07:02:13