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

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

在这里输入图像说明

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

<?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> 

在IntelliSense突然开始出错并停止在我的视图中的HTML标记之间正确着色C#代码之后,这就是我的工作原理:


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


在这里输入图像说明

作为一个额外的步骤,如果上述步骤不能解决问题,您可以select在VS的开发人员命令提示符(以pipe理员身份)运行命令DevEnv.exe /setup

造成这种情况的一个原因可能是,如果您的网页设置为mvc4应用程序的版本3,则可以在web.config应用程序设置中将其更改为版本2。

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

当智能感知系统停止在剃刀文件中工作时,很可能会通过三个步骤来解决问题:

  1. closuresVisual Studio
  2. 删除解决scheme用户选项文件( <solution-name>.suo
  3. 在Visual Studio中重新打开解决scheme。

智能感应选项的其他解决scheme可以在这里find。

将项目升级到MVC 5.2.3后,我在Visual Studio 2013中遇到了这个问题。 这个工作对我来说是取代了以下的“视图”文件夹中的web.config,因为NuGet包离开web.config与许多MVC 4.0引用。

 <?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> 

在我的情况下,“Xamarin”(移动应用程序开发工具)是问题。 卸载Xamarin后,剃刀Intellisense工作正常。

HTTP://forums.xamarin.com/discussion/24892 …

我遇到过同样的问题。 虽然我使用的是VS 2012,但下载适用于VS 2013和VS 2012.我已经尝试了一些修补程序(不得不使用web.config,通过NuGet卸载/重新安装MVC等),但是只有一个为我工作的是安装这个(对我来说,VS 2012)

VS 2013与ASP.NET和Web工具2013.1 http://www.asp.net/downloads

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

将Web.config文件中的“网页:版本”从“1.0.0.0”更改为“2.0.0.0”

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

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

另外,在对Web.config进行更改之后,可能必须重新启动Visual Studio,重新构build解决scheme似乎没有收到更改,至less它不适用于我。

我刚刚遇到了一个非常类似的问题:现有的应用程序不提供剃刀视图的intellesense,但我可以创build一个全新的应用程序,它的工作。 我能够通过使用脚手架为实体创build新的控制器和视图来解决问题。 intellesense为新的实体工作,并再次为现有的工作!

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

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

经过大量的search和testing,我发现,没有安装2013或任何升级版本,你仍然可以解决2012年的这个着色问题。安装“Visual Studio 2012的ASP.NET和Web工具2013.1”为我解决了这个问题。 closuresVS 2012并在安装后重启。

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

它为我工作。 希望它适合你。

我也有类似的情况,然后意识到我的项目中没有包含razor视图。 只要我将它包含在项目中(右键单击视图文件并select“包含在项目中”),就会出现Intellisense。