为什么我的Html Helpers没有intellisense?

Mik*_*keB 22 asp.net-mvc

我不能为我自己的html助手获得intellisense.我CustomHtmlHelpers.cs看起来像这样:

using System.Web.Mvc;
using System.Text;
using System.Web;

    namespace laget.Web.Helpers
    {
        public static class CustomHtmlHelpers
        {
            //MY HELPERS
        }
    }
Run Code Online (Sandbox Code Playgroud)

在我的Web.config中:

    <pages>
      <namespaces>
        <add namespace="laget.Web.Helpers" />
        <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.WebPages"/>
        <add namespace="System.Web.Helpers" />
      </namespaces>
    </pages>
Run Code Online (Sandbox Code Playgroud)

如果我<@using laget.Web.Helpers>加入我的观点,我会解决智能感知问题.

Web.config中的代码是不够的?

Luk*_*tný 24

有时它似乎不会立即起作用.尝试关闭.cshtml文件,然后重新打开它.然后,如果这不起作用,请尝试重新启动Visual Studio.还要确保您实际编译了您的项目,intellisense将无法与非编译助手一起使用.

  • 你是对的.重新启动Visual Studio,它立即工作. (2认同)

Ber*_*ron 6

我很确定你没有编辑正确的Web.config文件.

您需要将命名空间添加到Views目录中的命名空间.

<system.web.webPages.razor>
  <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.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="laget.Web.Helpers" />
    </namespaces>
  </pages>
</system.web.webPages.razor>
Run Code Online (Sandbox Code Playgroud)


Ale*_*s B 5

在大多数情况下,您实际上不需要重新启动Visual Studio.您需要做的就是关闭.cshtml文件并重新打开它!