Razor文件中的IntelliSense(.cshtml)停止工作

rid*_*nsb 64 razor asp.net-mvc-5

Intellisense在剃刀文件中不起作用:

在此输入图像描述

在我的web.conifg文件中(在Views文件夹中)显然是正确的:

<?xml version="1.0" encoding="utf-8"?>
<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.0.0.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.Routing" />
                <add namespace="System.Web.Optimization" />

                <add namespace="MvcSiteMapProvider.Web.Html" />
                <add namespace="MvcSiteMapProvider.Web.Html.Models" />

                <add namespace="DevTrends.MvcDonutCaching" />
            </namespaces>
        </pages>
    </system.web.webPages.razor>

    <appSettings>
        <add key="webpages:Enabled" value="false" />
    </appSettings>

    <system.webServer>
        <validation validateIntegratedModeConfiguration="false" />
        <handlers>
            <remove name="BlockViewHandler" />
            <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
        </handlers>
    </system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)

sil*_*ire 94

在IntelliSense突然开始出错并在我的视图中的HTML标记之间正确地着色C#代码之后,这对我有用:


只需删除文件夹的内容即可 %LOCALAPPDATA%\Microsoft\VisualStudio\14.0\ComponentModelCache


在此输入图像描述

作为附加步骤,16.0_<hash>如果上述步骤无法解决问题,您可以选择在VS的开发人员命令提示符(作为管理员)中运行该命令 .

  • 这对我来说非常有用,只需要一个完全最新的VS2015U1(只需删除缓存) (4认同)
  • 我刚刚删除了缓存并修复了它.谢谢. (3认同)

Mik*_*ike 16

当intellisense停止在剃刀文件中工作时,很有可能通过三个步骤修复问题:

  1. 关闭Visual Studio
  2. 删除解决方案用户选项文件(<solution-name>.suo)
  3. 在Visual Studio中重新打开解决方案.

智能感知选项的其他解决方案可以在这里找到.

  • 有时步骤9532就足够了 (14认同)
  • 有时步骤1就足够了 (7认同)
  • @ ksaylor11真的吗?你甚至不需要第3步?;-) (4认同)
  • 我必须显示隐藏文件才能找到我的解决方案选项 (.suo) 文件 (2认同)
  • 我的 .suo 文件位于 ``/{solutionfolder}/.vs/{solutionname}/v16/``` 下,并命名为 ``.suo```。 (2认同)

Joh*_*ohn 15

其中一个原因可能是,如果您的wepages设置为mvc4应用程序的版本3,您可以在web.config应用程序设置中将其更改为版本2.

  <appSettings>
    <add key="webpages:Version" value="2.0.0.0" />
Run Code Online (Sandbox Code Playgroud)


Kev*_*rst 13

在将项目升级到MVC 5.2.3之后,我在Visual Studio 2013中遇到了这种情况.对我来说有用的是用以下内容替换"Views"文件夹中的web.config,因为NuGet包使用许多MVC 4.0引用留下了web.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.0.0.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" />
        <add namespace="InvestureApps" />
      </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>
</configuration>
Run Code Online (Sandbox Code Playgroud)

  • 这与删除 ComponentModelCache 相结合对我有用。 (2认同)

Phi*_*o55 6

我在 Visual Studio 2017 中遇到了这个问题 - 我进入了解决方案所在的目录并删除了 .the vs 文件夹(它是一个隐藏文件夹),这解决了我的问题。