VS在cshtml文件中没有智能感知,没有添加来自web.config的命名空间

时间:2015-09-18 12:55:49

标签: c# asp.net-mvc razor web-config visual-studio-2015

我的cshtml中没有intellisense。我有我的web.config(views文件夹):

   <system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.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="EO2.Models" />
        <add namespace="EO2" />
        <add namespace="EO2.Resources"/>
      </namespaces>
    </pages>
  </system.web.webPages.razor>

只有在我的cshtml中添加@using MyNamespace时才有效。

我检查了所有版本号,如下所示: MVC Razor view Intellisense broken in VS 2013/2015/2017 Intellisense in razor files (.cshtml) not work

编辑:问题出现在VS或其他项目文件中? 我在每个新解决方案中都遇到同样的问题。

3 个答案:

答案 0 :(得分:0)

工具 - >输入/导出设置 - >重置设置

为我做了

答案 1 :(得分:0)

tldr;尝试切换构建配置并删除obj


我在YEARS没遇到这个问题,突然开始遇到它。

>------ Build started: Project: MyMVC, Configuration: Debug Any CPU ------
6>S:\TFS\RRStore\RRStore.Main\MyMVC\obj\CodeGen\obj\Release\Package\PackageTmp\Areas\Store\Views\Products\Category\SearchPanel\Search.cshtml.cs(22,26,22,27): error CS0116: A namespace cannot directly contain members such as fields or methods
========== Build: 5 succeeded, 1 failed, 9 up-to-date, 0 skipped ==========

等等!我正在做一个DEBUG构建,它在抱怨obj\Release

所以我完全删除了obj并收到此错误:

15>------ Rebuild All started: Project: MicroPedi_MVC, Configuration: Debug Any CPU ------
15>...RazorGenerator.MsBuild.targets(44,9): error : Could not find a part of the path 'S:\TFS\RRStore\RRStore.Main\My_MVC\obj\Release\Package\PackageTmp\Areas\Admin\Views\CallCenter\Index.cshtml'.
========== Rebuild All: 14 succeeded, 1 failed, 0 skipped ==========

什么!该文件夹甚至不存在(obj\Release)!

所以我切换到Release配置。一切都建成了。现在,如果我记得这并不能证明任何事情,因为我认为我使用的是预先编译的视图-我忘了它是如何工作的。

无论如何,然后我切换回Debug配置。

一切都突然生效!


如果这没有帮助-只需尝试一些基本的侦探工作,并假设没有任何作用!

我发现它在服务器上运行良好,并且很长一段时间都没有对web.config进行任何更改。

  • 尝试对文件进行无关紧要的更改(以确保代码源正在更新)。例如。添加评论,类名或更改一些文字
  • 找到生成的文件,类似于\obj\CodeGen\obj\Release\Package\PackageTmp\Areas\Store\Views\Products\Products.cshtml.cs
  • 看看您的微不足道的变化是否在那里体现
  • 如果不删除\obj\CodeGen\...或可能obj中的所有内容
  • 构建项目

另一种可能性:

我最近安装了.NET Framework 1.1(以便能够提取所需的第三方库)。

我还是卸载了它,但是不清楚这是否是任何东西搞砸的原因。可疑-特别是从1.1开始。一直喜欢把IIS弄乱。

答案 2 :(得分:0)

我建议:

  1. 创建一个新的 MVC5 vs2019 项目。
  2. 导航到位于 views 文件夹下的 web.config
  3. 将“损坏的”项目 web.config 替换为第 2 点中的项目
  4. 修复缺失的项目引用

这应该可以修复错误并使构建成为可能。