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

Blazor 6.0 Radzen DataGrid无法访问System.Collections报错问题

Blazor 6.0使用Radzen DataGrid报无法访问System.Collections错误

问题描述

报错截图如下:
AbsurdCollectionsError

当前项目中Radzen基础简单组件可正常运行,_layout.cshtml与_imports.razor已按要求完成Radzen相关配置,参照官方OnInitialized示例编写的测试页面代码如下:

@page "/sqltest"


@using data_sql.Models
@using ds_admin.Data
@inject TestDatabaseService dbService

<h3>SqlTest</h3>

@if (reports == null)
{
    <p><em>Loading...</em></p>
}
else
{
    <RadzenDataGrid Data="@reports" TItem="Report" >
        <Columns>
            <RadzenDataGridColumn TItem="Report" Property="ReportDate" Title="Report Date" />
            <RadzenDataGridColumn TItem="Report" Property="Id" Title="Report Id" />
        </Columns>

    </RadzenDataGrid>  
   
}

@code {
    IEnumerable<Report> reports;

    public async Task OnInitializedAsync()
    {
        reports = await dbService.GetAcmfReportsAsync();
    }
}

报错原因

这个报错由两类高频问题触发:

  • Radzen.Blazor包版本与.NET 6框架不匹配:5.x及以上版本的Radzen.Blazor仅支持.NET 7及以上框架,在.NET 6环境下安装后会出现基础组件可正常运行、依赖集合类型的复杂组件(如DataGrid)抛出System.Collections访问异常的问题。
  • Razor编译上下文缺失系统集合命名空间引用:Razor文件的编译逻辑独立于后台C#类文件,即使后台代码默认引入了System.Collections相关命名空间,没有在_Imports.razor或当前页面显式引入的话,Radzen组件内部解析集合绑定类型时就会找不到对应命名空间。

解决步骤

按以下顺序排查修复即可:

  1. 校正Nuget包版本
    打开Nuget包管理器,将已安装的Radzen.Blazor包降级到适配.NET 6的4.x最新稳定版本,卸载不兼容的高版本包。
  2. 补全全局命名空间引用
    打开项目根目录的_Imports.razor文件,添加以下两行引用:
    @using System.Collections
    @using System.Collections.Generic
    
  3. 确认服务注册完整
    打开Program.cs,确认已添加Radzen相关服务注册:
    builder.Services.AddScoped<DialogService>();
    builder.Services.AddScoped<NotificationService>();
    builder.Services.AddScoped<TooltipService>();
    builder.Services.AddScoped<ContextMenuService>();
    
  4. 清理编译缓存
    关闭开发工具,删除项目目录下的bin、obj文件夹,重新打开项目执行「清理解决方案」-「重新生成解决方案」操作,排除旧缓存导致的类型识别异常。

内容的提问来源于stack exchange,提问作者A.Rowan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 17:15:42