You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

视图中MVC类不可用(标红),升级VS仍无效,求排查解决

解决MVC类在视图中显示为红色不可用的问题

嘿,我之前维护老MVC项目时也碰到过一模一样的问题,给你几个实用的排查步骤,应该能解决:

  • 检查NuGet包与程序集引用
    右键项目 → 「管理NuGet程序包」,确认Microsoft.AspNet.MvcMicrosoft.AspNet.Razor这两个核心包都已安装,且版本是你提到的5.2.3.0。如果有缺失、版本不一致,直接重新安装对应版本。另外也要检查项目引用里的System.Web.Mvc是否存在,版本是否匹配。

  • 核对Web.config配置(根目录+Views目录)
    这两个配置文件很容易出问题,一定要仔细检查:

    1. 根目录Web.config:找到configuration/system.web/compilation/assemblies节点,确认包含正确的MVC程序集引用:
      <add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      
    2. Views目录下的Web.config:
      • 检查pages/namespaces节点,确保添加了MVC相关命名空间:
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        
      • 确认configuration/system.web.webPages.razor/host节点的type属性版本正确:
        <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        
  • 清理缓存并重建项目
    有时候VS的缓存会搞出奇怪的问题,按这个流程来:

    • 点击菜单「生成」→「清理解决方案」
    • 手动删除项目下的binobj文件夹
    • 重启Visual Studio
    • 重新生成解决方案
  • 检查视图的页面指令
    打开报错的视图,看顶部的@inherits指令是否正确:

    @inherits System.Web.Mvc.WebViewPage
    

    如果是强类型视图,还要确认模型的命名空间有没有正确引用,别漏了@using指令。

  • 验证.NET Framework版本匹配
    右键项目→「属性」→「应用程序」,确认目标框架是.NET Framework 4.6,MVC5.2.3完全支持这个版本,别不小心选成了其他框架。

如果以上步骤都试过还没解决,可以新建一个空白的MVC5项目,对比它的引用和配置文件,看看你的项目有没有缺失的节点或者错误的配置——有时候老项目的.csproj文件损坏也会导致这类问题。

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

火山引擎 最新活动