智能感知在剃刀文件中不起作用:
在我的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>
答案 0 :(得分:84)
在IntelliSense突然开始出错并停止在我的视图中的HTML标记之间正确着色C#代码之后,这对我有用:
只需删除%LOCALAPPDATA%\Microsoft\VisualStudio\14.0\ComponentModelCache
如果您使用的是VS 2019,则版本文件夹名为16.0_<hash>
。
作为附加步骤,如果上述步骤无法解决问题,您可以选择在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停止在剃刀文件中工作时,很有可能通过三个步骤修复问题:
<solution-name>.suo
)可以找到智能感知选项的其他解决方案 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之后,剃刀智能感知工作正常。
答案 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,重建解决方案似乎没有获取更改,至少它不适合我。