Telerik Blazor DropDownList内部空引用异常排查求助
问题根因与解决方案
根因定位
你提供的示例代码中User类的UserNumber、Name均为公共字段,而Telerik Blazor系列组件读取TextField、ValueField指定的成员时,仅支持读取公共属性(即带get/set访问器的成员),无法正确读取字段值,导致组件内部拿到空值后拆箱失败,触发你看到的空引用异常。
修复方案
1. 修改User类定义,将字段改为属性
public class User { public long UserNumber { get; set; } public string Name { get; set; } }
2. 可选优化(避免其他潜在问题)
如果修改后仍有异常,可以补充以下配置:
- 显式指定组件泛型参数,避免自动类型推断错误:
<TelerikDropDownList TItem="User" TValue="long" Data="@UserDataSource" TextField="@nameof(User.Name)" ValueField="@nameof(User.UserNumber)" @bind-Value="SelectedUser" />
- 若数据源为异步加载场景,可将选中值改为可空类型,避免初始值与数据源不匹配问题:
public long? SelectedUser { get; set; }
内容的提问来源于stack exchange,提问作者Hans Kilian
相关产品推荐
相关产品推荐

