MVC Razor 视图没有智能感知

本文关键字:智能 感知 Razor 视图 MVC | 更新日期: 2023-09-27 18:34:19

I'm on MVC 5, .NET 4.6, Visual Studio Professional 2015.我偶尔会遇到一个问题,VS 决定它不想再看到某些引用了。它通常是与MVC直接相关的那些。当前问题是The type 'WebViewPage<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.

过去已通过卸载/重新安装 MVC NuGet 包解决了此问题,但这次不起作用。我已经尝试了以下所有方法,但没有任何效果。该项目编译和运行没有问题,只是智能感知有问题。这些步骤中的每一个都是在所有视图关闭的情况下完成的,之后它们被重新打开。每个还进行了第二次测试,在两者之间关闭VS。

  • 确保实际引用并找到System.Web.Mvc(引用列表中没有黄色感叹号(。
  • 卸载/重新安装 MVC。
  • 确保在两个Web.config文件(Views 文件夹和根级别(中都引用了System.Web.Mvc,并且这些引用具有正确的版本5.0.0.0和正确的PublicKeyToken
  • 确保引用设置为 Copy Local,并且在生成项目时实际上正在复制。
  • 从解决方案中每个项目的binobj文件夹中删除所有文件。
  • 确保解决方案中的所有项目都面向相同版本的 .NET (4.6(。

我在Visual Studio包管理方面有很多问题。如何修复据称在视图中找不到引用的 VS,以便智能感知再次工作?

MVC Razor 视图没有智能感知

在错误消息中,它说它找不到System.Web.Mvc, Version=5.2.3.0,然后您提到配置文件已System.Web.Mvc, Version=5.0.0.0

因此,首先尝试将所有System.Web.Mvc, Version=5.0.0.0更新为 web.config视图配置文件中的Version=5.2.3.0

[视图配置文件末尾有一个对库的引用:-(]

如果这不起作用,请尝试以下操作:

首先备份您的配置文件 -

将项目从 MVC4 更新到 MVC5 后,我遇到了类似的问题。

问题是更新没有正确更新配置文件。

您可以使用最新版本创建新的 MVC 项目,并从新项目中复制配置文件。

您可以从Web.config文件中复制<runtime>部分。

只需复制整个Views config文件

<?xml version="1.0"?>
<configuration>
  <configSections>
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    </sectionGroup>
  </configSections>
  <system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Optimization"/>
        <add namespace="System.Web.Routing" />
        <!--Then copy over your View References-->
      </namespaces>
    </pages>
  </system.web.webPages.razor>
  <appSettings>
    <add key="webpages:Enabled" value="false" />
  </appSettings>
  <system.webServer>
    <handlers>
      <remove name="BlockViewHandler"/>
      <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
    </handlers>
  </system.webServer>
  <system.web>
    <compilation>
      <assemblies>
        <add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      </assemblies>
    </compilation>
  </system.web>
</configuration>