【问题标题】:No intellisense on namespaces in Views Web.configViews Web.config 中的命名空间没有智能感知
【发布时间】:2017-10-17 15:44:24
【问题描述】:

我有一个 MVC5 项目,我正在尝试解决一些在 System.Web.MVC 组件上没有获得智能感知的问题

在我的视图文件夹中的 Web.Config 中,我有以下内容;

<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.Configuration" />
        <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="Helpers" />
        <add namespace="Common.Net.Mvc" />
        <add namespace="Common" />
        <add namespace="MvcSiteMapProvider.Web.Html" />
        <add namespace="MvcSiteMapProvider.Web.Html.Models" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>

但是,当我随后引用例如 Url.、ViewBag 或 Html.ActionLink 等时(如果我引用我的 Common 类,它是一个 .resx 生成的文件)。我收到错误说它们不存在当前上下文。

我可以成功编译和运行代码,页面渲染得很好,不过最好能消除这些错误并获得我通常得到的智能感知。

我正在运行 VS2017 社区,并且我安装并更新了 Razor 扩展。我对其他项目有智能感知,它似乎就是这个。

【问题讨论】:

  • 通常:重建;关闭所有文件;关闭 Visual Studio 并重新打开
  • 试过了还是有问题?还有其他想法吗?
  • 所有 NuGet 包都已恢复并正确引用?
  • 似乎是。运行程序时没有问题。只是烦人我无法获得智能感知?
  • 清除所有 .vs 隐藏文件夹和 .suo .user 文件。只有一种解决方案有问题吗?如果您创建一个新的 MVC 项目,它可以工作吗?在安全模式下尝试 Visual Studio 其他方法都失败了?

标签: c# asp.net-mvc razor


【解决方案1】:

好的,经过大量搜索和浪费时间,这里的答案解决了这个问题;

The name 'ViewBag' does not exist in the current context - Visual Studio 2015

这是我采取的步骤的简要说明(可能不需要删除和删除文件);

  1. 从有问题的解决方案中删除 .suo 和 .csproj.user。
  2. 从解决方案的路径中删除隐藏的 .vs 文件夹
  3. 中删除临时 asp 网络文件

C:\Users\your.name.here\AppData\Local\Temp\Temporary ASP.NET 文件

  1. 从这里删除文件;

C:\Users\your.name.here\AppData\Local\Microsoft\VisualStudio\14.0\ComponentModelCache

请注意,仅以上内容并不能解决问题,因此我将以下内容与以上内容结合使用。

  1. 根据上面的链接,将 .csproj 版本信息与问题和修正项目的版本信息进行比较(因为它确实是一个从 VS 2012 继承的项目)。

  1. 右键单击解决方案 -> '管理 Nuget 包...' -> 更新 -> 全选 -> 应用更新

这重建了 nuget 引用,智能感知又回来了。希望有一天,这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-16
    相关资源
    最近更新 更多