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

时间:2014-01-23 13:39:32

标签: razor asp.net-mvc-5

智能感知在剃刀文件中不起作用:

enter image description here

在我的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>

18 个答案:

答案 0 :(得分:84)

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

只需删除%LOCALAPPDATA%\Microsoft\VisualStudio\14.0\ComponentModelCache

处文件夹的内容即可

如果您使用的是VS 2019,则版本文件夹名为16.0_<hash>

enter image description here

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

答案 1 :(得分:15)

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

  <appSettings>
    <add key="webpages:Version" value="2.0.0.0" />

答案 2 :(得分:13)

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

  1. 关闭Visual Studio
  2. 删除解决方案用户选项文件(<solution-name>.suo
  3. 在Visual Studio中重新打开解决方案。
  4. 可以找到智能感知选项的其他解决方案 here

答案 3 :(得分:12)

在将项目升级到MVC 5.2.3之后,我在Visual Studio 2013中遇到了这种情况。对我有用的是替换&#34; Views&#34;中的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>

答案 4 :(得分:4)

在我的情况下,“Xamarin”(移动应用程序开发工具)就是问题所在。 卸下Xamarin之后,剃刀智能感知工作正常。

http://forums.xamarin.com/discussion/24892...

答案 5 :(得分:3)

我的项目从VS2012升级到VS2013,这解决了我的问题:

更改&#34;网页:版本&#34;在&#34; 1.0.0.0&#34;的Web.config文件中到&#34; 2.0.0.0&#34;

<appSettings>
    <add key="webpages:Version" value="2.0.0.0" />

答案 6 :(得分:3)

我有同样的问题。虽然我正在使用VS 2012,但是有一个适用于VS 2013和VS 2012的下载。我已经尝试了很多修复(与web.config有关,通过NuGet卸载/重新安装MVC等)但是只有一个适合我的是安装这个(再次,对我来说,VS 2012)

使用ASP.NET和Web Tools 2013.1的VS 2013 http://www.asp.net/downloads

答案 7 :(得分:2)

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

答案 8 :(得分:1)

看来有很多原因导致了这个问题。

在我的情况下,我从另一个项目中复制了一些代码/文件,此后Intellisense不起作用,这是因为我在复制的文件中使用了不同的命名空间,这使得Intellisense不起作用。 正确的名称空间会使它再次起作用。

答案 9 :(得分:0)

就我而言,上述方法均无效,这是我为解决问题而采取的措施:

用VS加载项目并保留它,然后使用Notepad ++或任何您喜欢的文本编辑器打开your-project-name.csproj并进行一些更改,例如删除Content标签(不用担心,它将将其重新添加到VS Solution Explorer中后返回),一旦保存更改,Visual Studio IDE将检测到您的更改并要求您重新加载整个项目,单击“是”,然后单击我的代码IntelliSense。

我正在使用: Microsoft Visual Studio专业版2019预览 版本16.3.0 Preview 2.0

希望有帮助。

答案 10 :(得分:0)

在我的情况下,安装Resharper(2018.3 EAP 3)的较新版本(每晚构建)很有帮助。

答案 11 :(得分:0)

我只需右键点击“添加到项目”即可查看我的新视图以获取Intellisense。

答案 12 :(得分:0)

就我而言      这解决了我的问题,我只是将版本值从3更改为2.它对我有效。

答案 13 :(得分:0)

我有类似的情况,然后意识到剃刀视图没有包含在我的项目中。一旦我将它包含在项目中(右键单击视图文件并选择Include in Project),Intellisense就会出现。

答案 14 :(得分:0)

经过大量搜索和测试后,我发现,如果不安装2013或任何升级版本,您仍然可以解决2012年的着色问题。安装&#34; ASP.NET和Web Tools 2013.1 for Visual Studio 2012&#34;为我解决了这个问题。关闭VS 2012并在安装后重新启动它。

下载链接是, https://www.microsoft.com/en-us/download/details.aspx?id=41532

它对我有用。希望它适合所有人。

答案 15 :(得分:0)

我遇到了一个非常类似的问题:现有的应用程序没有为Razor视图提供intellesense,但我可以创建一个全新的应用程序并且它有效。我能够通过使用Scaffolding为实体创建新的控制器和视图来解决问题。 intellesense为新实体工作,它再次为现有实体工作!

答案 16 :(得分:0)

安装ASP.NET and Web Tools 2013.1 for Visual Studio 2012为我工作:

您可能需要重新启动VS才能使其正常工作。

答案 17 :(得分:0)

注意你的Web应用程序中是否有区域,Area / Views文件夹中还有另一个Web.config文件,在我的情况下,这个配置文件是罪魁祸首。

此外,您可能必须在对Web.config进行更改后重新启动Visual Studio,重建解决方案似乎没有获取更改,至少它不适合我。