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

VS2022中Umbraco 9 cshtml视图IntelliSense失效解决方法

Umbraco 9.5.1 VS2022 Razor视图智能提示配置方案

Umbraco 9默认的ModelsBuilder配置为内存生成模式,强类型模型仅在项目运行时加载到内存中,Visual Studio无法索引到相关类型定义,因此cshtml视图中Model成员无智能提示。手动添加配置后报错,通常是配置节点不完整、模型目录选择不符合Umbraco安全规则导致的,按以下步骤配置即可:

第一步:补全appsettings.json正确配置

不要将模型生成目录放在~/umbraco开头的系统运行目录下,避免被系统覆盖、触发目录安全校验,完整配置段如下:

{
  "Umbraco": {
    "CMS": {
      "ModelsBuilder": {
        "ModelsMode": "SourceCodeAuto",
        "ModelsDirectory": "~/Models/Generated",
        "AcceptUnsafeModelsDirectory": true,
        "ModelsNamespace": "Umbraco.Cms.Web.Common.PublishedModels"
      }
    }
  }
}

配置参数说明:

  • SourceCodeAuto模式下,文档类型变更后会自动生成模型类文件,开发阶段无需手动触发生成;如果需要手动控制生成时机,可替换为SourceCodeManual
  • AcceptUnsafeModelsDirectory参数用于放开非默认目录的写入权限,解决目录安全校验报错问题
  • 保持默认模型命名空间,无需额外在视图中引入命名空间

第二步:生成并引入模型文件

  • 启动项目,进入Umbraco后台,在「设置」板块找到Models Builder入口,点击生成模型(SourceCodeAuto模式会自动完成首次生成)
  • 生成完成后关闭项目,回到Visual Studio的解决方案资源管理器,点击顶部「显示所有文件」按钮,找到配置中指定的Models/Generated文件夹,右键选择「包括在项目中」

第三步:配置视图基类开启强类型提示

打开Views目录下的_ViewImports.cshtml文件,补充全局视图基类配置,避免每个视图单独声明:

@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage
@using Umbraco.Cms.Web.Common.PublishedModels
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

针对特定强类型模板页,可以在页面顶部单独指定对应模型类型,示例:

@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage<首页模型类名>

第四步:清理VS缓存(配置后仍无提示时操作)

  • 完全关闭Visual Studio
  • 删除项目根目录下的隐藏.vs文件夹,以及项目下的bin、obj目录
  • 重新打开项目,重新生成解决方案,等待VS完成文件索引后,打开cshtml文件即可正常显示Model成员智能提示

注意:不要修改默认模型的命名空间,不要将生成的模型文件纳入版本控制,每次文档类型变更后等待模型自动生成,再重新生成项目即可同步提示内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 17:54:25