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

Blazor Server(.NET6):无法将method group转为EventCallback错误解决

问题原因

InputNumber组件默认会推断泛型类型为int?(可空整数),导致其ValueChanged的类型是EventCallback<int?>,但你的OnIntValueChanged方法接受的是非空int参数,类型不匹配因此报错。而InputText绑定的是string(非可空引用类型),泛型推断准确,所以OnStringValueChanged能正常匹配。

解决方法

方法一:显式指定InputNumber的泛型类型

在CustomInputBase.razor中,给InputNumber明确指定泛型参数为非空int,让ValueChanged的类型与方法签名匹配:

@if (Type == "number")
{
    <InputNumber<int> Value="@IntValue" ValueExpression="@(() => IntValue)" class="@Class" id="@Id" ValueChanged="OnIntValueChanged" />
}

方法二:将IntValue改为可空类型

如果业务需要支持空值输入,修改CustomInputBase.cs中的相关参数和方法,让类型统一为可空整数:

public class CustomInputBase : ComponentBase
{
    [Parameter] public string Type { get; set; }
    [Parameter] public int? IntValue { get; set; }
    [Parameter] public EventCallback<int?> IntValueChanged { get; set; }
    // 其他参数保持不变
 
    protected async Task OnIntValueChanged(int? newValue)
    {
        IntValue = newValue;
        await IntValueChanged.InvokeAsync(IntValue);
    }
 
    // OnStringValueChanged方法保持不变
}

此时Razor文件中的InputNumber无需修改泛型,组件会自动推断为int?,方法签名可正常匹配。

内容的提问来源于stack exchange,提问作者Sadikul Haque Sadi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 22:42:08