【问题标题】:IntelliSense in Razor files (.cshtml) stopped workingRazor 文件 (.cshtml) 中的 IntelliSense 停止工作
【发布时间】:2014-02-14 02:21:15
【问题描述】:

Intellisense 不适用于 razor 文件:

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

【问题讨论】:

  • 尝试更新您的 nuget 包并安装 VS2013 更新 1。
  • 尝试创建一个全新的 ASP MVC 项目,然后确定智能感知是否有效。
  • 从事新项目。这个项目就是不行!
  • 分而治之,我的朋友。损坏的项目和新项目之间有一些重要的区别。你需要弄清楚那个区别是什么。
  • * 我将views 文件夹中的web.config 复制到我的项目中(不起作用)* 我检查了安装的包、dll(和版本),一切正常。 * 我尝试使用Update-Package -Reinstall 重新安装软件包(没有用)

标签: razor asp.net-mvc-5


【解决方案1】:

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

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

【讨论】:

【解决方案2】:

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

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

【讨论】:

  • 确实回滚到版本 2 使智能恢复了生机。但是我的 System.Web,Webpages 参考实际上是 3.0.0 版本,而我的项目是 MVC 5!这很奇怪
  • 我认为 mvc 5 附带网页版本 3。这听起来是正确的。也许您引用的 dll 不正确?
  • 还检查了 dll,版本匹配。即使从头开始创建一个新的 MVC 5 项目也破坏了智能。我安装了 VS 2012 Update 4 + Web Tools 2013.1
  • 刚刚发现问题.....是 Xamarin 插件导致了这个错误,这是一个已知问题。
【解决方案3】:

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

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

【讨论】:

  • 我在使用 Xamarin 时也遇到过类似情况。
  • 对于 Xamarin 问题,可以在这里找到解决方案:stackoverflow.com/questions/27952666/…
  • 我在 mac 上也有,但我也需要 xamarin
【解决方案4】:

当智能感知停止在 razor 文件中工作时,很有可能可以通过三个步骤解决该问题:

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

智能感知选项的其他解决方案可以在here找到。

【讨论】:

  • 有时第 1 步就足够了
  • 我必须显示隐藏文件才能找到我的解决方案选项 (.suo) 文件
  • 我的 .suo 文件位于 /{solutionfolder}/.vs/{solutionname}/v16/ 下,并命名为 .suo
【解决方案5】:

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

将 Web.config 文件中的“webpages:Version”从“1.0.0.0”更改为“2.0.0.0”

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

【讨论】:

  • 我的由于某种原因被设置为 5(在 VS2017 中)更改为 3 似乎已经解决了问题
【解决方案6】:

在将项目升级到 MVC 5.2.3 后,我在 Visual Studio 2013 中遇到了这种情况。对我有用的是用以下内容替换“Views”文件夹中的 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>

【讨论】:

  • 我的views/webconfig文件看起来和这个一模一样,但仍然......同样的问题:(
  • 结合删除 ComponentModelCache,这对我有用。
  • 刚刚基于此更新了版本,还删除了ComponentModelCache
  • 终于!这也对我有用。在我更新视图文件夹中的 web.config 后,还结合删除 ComponentModelCache
【解决方案7】:

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

另外,在对 Web.config 进行更改后,您可能必须重新启动 Visual Studio,重建解决方案似乎并没有得到更改,至少对我来说没有。

【讨论】:

  • 只是好奇 - Areas/Views/ 中的 Web.config 是怎样的罪魁祸首?修复基本上按照凯文赫斯特的答案较低吗?
【解决方案8】:

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


只需删除%LOCALAPPDATA%\Microsoft\VisualStudio\16.0_&lt;hash&gt;\ComponentModelCache文件夹的内容


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

【讨论】:

  • 刚刚在完全最新的 VS2015U1 上,这对我来说非常有用(只是删除缓存)
  • 我刚刚删除了缓存并修复了。谢谢。
  • 创建新区域后,我开始出现这个问题,因为它的新视图。我刚刚删除了缓存文件并重新打开了 VS,现在它正在工作。谢谢!
  • 哇,太棒了,谢谢! ComponentModelCache 是我在 VS 2013/15 中要去的地方,我总是有一个方便的文件夹快捷方式:如果有任何问题,请删除该文件夹。 VS 2017 不太容易出现缓存损坏,所以我几乎忘记了它。我的问题完全相同:Razor 中没有 IS,删除文件夹修复了它。希望他们能在 VS 2042 之前获得连贯的缓存...
  • 为此损失了 2 小时,在执行 devenv /setup 后它终于为我工作了。
【解决方案9】:

安装 ASP.NET and Web Tools 2013.1 for Visual Studio 2012 对我有用:

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

【讨论】:

    【解决方案10】:

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

    【讨论】:

      【解决方案11】:

      经过大量搜索和测试,我发现,无需安装 2013 或任何升级版本,您仍然可以解决 2012 年的此着色问题。安装“ASP.NET 和 Web 工具 2013.1 for Visual Studio 2012”为我解决了这个问题。安装后关闭VS 2012并重启。

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

      它对我有用。希望对大家有用。

      【讨论】:

        【解决方案12】:

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

        【讨论】:

        • 我在 VS Proffessional 2019 中处理 Umbraco 项目时遇到了这个问题,这也为我解决了这个问题。感谢您的提示!
        【解决方案13】:

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

        【讨论】:

          【解决方案14】:

          我只需右键单击“添加到项目”,我的新视图就可以使用 Intellisense。

          【讨论】:

            【解决方案15】:

            看来产生这个问题的原因有很多。

            在我的情况下,我从另一个项目复制了一些代码/文件,之后 Intellisense 不起作用,这是因为我在复制的文件中有不同的命名空间,所以 Intellisense 不起作用。 更正命名空间使其再次工作。

            【讨论】:

              【解决方案16】:

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

              【讨论】:

                【解决方案17】:

                安装 Resharper (2018.3 EAP 3) 的较新版本(夜间构建)对我有帮助。

                【讨论】:

                  【解决方案18】:

                  在我的情况下,以上方法都不起作用,这是我为解决问题所做的:

                  用 VS 加载项目并离开它,然后用 Notepad++ 或任何你喜欢的文本编辑器打开 your-project-name.csproj 并进行一些更改,例如删除内容标签(别担心,它会将其重新包含在 VS 解决方案资源管理器中后会返回),保存更改后,Visual Studio IDE 将检测您的更改并要求您重新加载整个项目,单击“是”并返回我的代码 IntelliSense。

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

                  希望对你有帮助。

                  【讨论】:

                    【解决方案19】:

                    在我的情况下,解决方案是在 tools>options>text editor>HTML>advanced to true 中设置“Use legacy Razor editor for ASP.NET Core”。

                    【讨论】:

                      猜你喜欢
                      • 2021-10-14
                      • 1970-01-01
                      • 2020-02-23
                      • 2014-03-22
                      • 1970-01-01
                      • 2016-02-07
                      • 1970-01-01
                      • 2017-03-18
                      • 1970-01-01
                      相关资源
                      最近更新 更多