Radzen Dropdown无数据显示问题排查(.NET8 SSR模式)
下拉框无数据显示的排查点
1. TextProperty与实体属性不匹配
你的RadzenDropDown配置了TextProperty="Name",但在查询MasterClasses时,仅为Id和ClassroomName属性赋值。如果MasterClass类不存在Name字段,或者实际要显示的是ClassroomName,下拉框会因找不到对应文本属性,导致选项为空或不显示内容。
修正方法:将TextProperty改为ClassroomName:
<RadzenDropDown Data="@MasterClasses" TextProperty="ClassroomName" ValueProperty="Id" @bind-Value="@selectedClass" Placeholder="Please select a class"/>
2. 验证器Component属性配置错误
RadzenRequiredValidator的Component属性需要指定下拉框组件的Name属性值,而非绑定的变量名selectedClass。当前配置会导致验证失效,虽不直接影响数据显示,但属于配置错误。
修正方法:给下拉框添加Name属性,再让验证器指向该名称:
<RadzenDropDown Name="classDropdown" Data="@MasterClasses" TextProperty="ClassroomName" ValueProperty="Id" @bind-Value="@selectedClass" Placeholder="Please select a class"/> <RadzenRequiredValidator Component="classDropdown" Text="Class is required" />
3. 确认MasterClasses是否正确加载
即使数据库存在数据,也可在OnInitializedAsync中添加日志或断点,验证MasterClasses是否真的获取到数据:
protected override async Task OnInitializedAsync() { MasterClasses = await DbContext.MasterClasses.Select(mc => new MasterClass { Id = mc.Id, ClassroomName = mc.ClassroomName }).ToListAsync(); // 输出加载数量确认 Console.WriteLine($"Loaded {MasterClasses.Count()} classes"); await base.OnInitializedAsync(); }
若输出为0,说明数据查询存在问题,需检查DbContext配置、实体映射是否正确。
4. .NET8 SSR下的组件状态问题
在.NET8服务器端渲染模式中,确保组件生命周期方法正常执行。如果OnInitializedAsync未被调用(比如组件为动态加载),可尝试改用OnParametersSetAsync加载数据,或确认组件是否正确挂载。
内容的提问来源于stack exchange,提问作者eza
相关产品推荐
相关产品推荐

