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

Mvc View问题:编译正常但cshtml中C#代码报The name ***不存在于当前上下文

解决CSHTML视图中C#代码红下划线但编译正常的问题

这种情况我碰到过好多次了——编译能正常通过但IDE(比如Visual Studio)里的Razor代码报红,提示「The name *** does not exist in the current context」,大多是IntelliSense缓存或IDE配置问题,而非代码本身错误。给你列几个亲测有效的解决步骤,按顺序尝试即可:

  • 清理并重建项目
    先执行「生成」→「清理解决方案」,接着「生成解决方案」,最后重启Visual Studio。很多时候是IntelliSense没同步编译后的项目状态,清理重建能强制刷新它的认知。

  • 强制刷新/重置IntelliSense缓存
    用快捷键 Ctrl+Shift+R 可以直接刷新当前视图的IntelliSense;如果无效,找到项目根目录下的隐藏文件夹 .vs(注意要显示隐藏文件),删除它后重启VS——这个文件夹存着VS的本地缓存,删除后会自动重建,能解决大部分缓存紊乱问题。

  • 再次核对视图的命名空间与引用
    虽然你确认过引用,但再检查一遍:视图顶部有没有添加对应的@using指令?比如你使用的模型在YourApp.Models命名空间下,有没有写@using YourApp.Models?另外页面模型的声明@model YourPageModel有没有拼写错误?有时候类名大小写或者命名空间漏写会导致IDE识别不到,但编译时因为项目引用正确能通过。

  • 检查Razor视图编译配置
    右键项目→「属性」→「生成」,查看是否勾选了「启用 Razor 视图的运行时编译」(针对ASP.NET Core项目)。也可以打开项目的.csproj文件,检查是否有冲突的配置项,比如<MvcRazorCompileOnPublish>或<RazorCompileOnBuild>,确保这些设置和项目类型匹配。

  • 修复Visual Studio安装
    如果以上步骤都没用,可能是VS的ASP.NET相关组件损坏了。打开Visual Studio Installer,选择你的VS版本点击「修改」→「修复」,修复Web开发相关组件后再重试。

  • 排查第三方插件干扰
    如果你安装了Resharper、CodeRush这类代码分析插件,试试暂时禁用它们。这类插件的缓存可能和VS原生的IntelliSense冲突,导致误报红下划线。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:56:10