在Views Web.config中没有名称空间的智能感知

时间:2017-10-17 15:44:25

标签: c# asp.net-mvc razor

我有一个MVC5项目我试图解决一些问题,我没有在System.Web.MVC组件上获得intellisense

在我的观察文件夹中的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扩展。我对其他项目有智能感知它似乎就是这个。

1 个答案:

答案 0 :(得分:0)

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

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 Files

    1. 删除此处的文件;
    2.   

      C:\用户\ your.name.here \应用程序数据\本地\微软\ VisualStudio的\ 14.0 \ ComponentModelCache

      请注意,上述情况并未解决,因此我将上述内容与上述内容结合使用。

      1. 将.csproj版本信息与项目的版本信息进行比较,并对问题进行修改(因为它确实是VS 2012表格中的项目),并按照上面的链接进行了比较。
      2. csproj Image

        1. 右键单击解决方案 - &gt; &#39;管理Nuget套餐......&#39; - &GT;更新 - &gt;全选 - &gt;应用更新
        2. 这重建了nuget引用并且intellisense回来了。希望有一天,这会有所帮助。