You need to enable JavaScript to run this app. Umbraco CMS v9访问新建页面报IEnumerable未引用程序集错误如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Umbraco CMS v9访问新建页面报IEnumerable未引用程序集错误如何解决

Umbraco CMS v9 访问自定义页面报错解决方案

问题根因说明

Umbraco 9 基于 ASP.NET Core 5.0 构建,不再使用传统 .NET Framework 的 web.config 编译配置逻辑:

  • 你修改的是项目构建/运行时自动生成的 web.config,每次启动都会被覆盖
  • 你配置的 targetFramework="4.5" 是 .NET Framework 版本标识,和 Umbraco 9 依赖的 .NET 5 不兼容

修复步骤

方案1:优先根因修复(无需修改web.config)

  1. 先排查视图属性调用错误:注释视图里的 <div>@Model.Check</div> 代码,启动项目看页面是否正常打开,确认报错是否由该属性调用触发
  2. 检查 HomePage 文档类型的 Check 字段类型:如果该字段为多选下拉、媒体集合、多内容项等返回 IEnumerable 类型的字段,不能直接输出整个集合,需要遍历渲染,示例代码:
@* 假设Check为字符串集合类型 *@
@if (Model.Check != null && Model.Check.Any())
{
    foreach(var item in Model.Check)
    {
        <div>@item</div>
    }
}
  1. 进入Umbraco后台「设置」-「Models Builder」,点击「生成模型」后重启项目,确保发布的内容模型为最新版本
  2. 检查项目 .csproj 文件,确认目标框架为 net5.0,所有 Umbraco 相关 NuGet 包版本一致且无缺失

方案2:自定义web.config配置(如果你确实需要添加程序集引用)

不要修改输出目录下的自动生成web.config,直接在项目根目录新建/修改 web.config 文件,构建时会自动合并配置不会被覆盖,正确配置示例:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.web>
    <compilation debug="true" targetFramework="net5.0">
      <assemblies>
        <add assembly="System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"/>
      </assemblies>
    </compilation>
  </system.web>
</configuration>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 19:27:01