Проблема с пространством имен ASP.NET MVC 4 в режиме бритвы

Я добавил следующее пространство имен в мой файл web.config Views:

<add namespace="System.Web.Mvc.Html5" />

Теперь проблема в том, что в представлениях я могу использовать только типы, используя полное имя:

@System.Web.Mvc.Html5.InputTypes.Html5TextBox()

Я хотел бы иметь возможность:

@InputTypes.Html5TextBox()

Как я могу это сделать?

Ответ 1

Убедитесь, что вы добавили это пространство имен в файл ~/Views/web.config, а не в стандартный ~/web.config файл:

<system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.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="System.Web.Mvc.Html5" />
      </namespaces>
    </pages>
</system.web.webPages.razor>

Также убедитесь, что после добавления этого пространства имен вы закрыли и снова открыли представление Razor в Visual Studio, чтобы изменения вступили в силу.