Подтвердить что ты не робот

Добавьте пространство имен проектов в MVC web.config

Не могу ли я добавить пространство имен проектов в файл web.config, чтобы механизм просмотра Razor включал мое пространство имен проектов для всех страниц моего проекта? Например:

<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 = "MyProjectNamespace.NestedNamespace"/>
      </namespaces>
    </pages>
  </system.web.webPages.razor>

Он не работает.

4b9b3361

Ответ 1

Это старый вопрос, но, видимо, проблема с Visual Studio ( 2015 2017) по-прежнему остается проблемой прямо сейчас). После добавления пространств имен в файл web.config в папке "Представления" закройте и повторно откройте все представления. Пространства имен не были распознаны, и представления будут непрерывно вызывать ошибки времени выполнения, пока я их не закрыл.

Ответ 2

Пространство имен необходимо добавить в файл web.config в папке "Представления", а не в корневом проекте web.config. Это импортирует пространство имен для всех файлов cshtml только в этой папке представлений. Если в вашем проекте есть области MVC, каждая область будет иметь свою собственную папку Views и отдельный файл вида web.config. Чтобы импортировать пространство имен в эти представления, вам необходимо добавить пространство имен в каждую папку просмотра области web.config.

Ответ 3

Вы также можете добавить оператор @using в файл _ViewStart.cshtml, который будет охватывать все представления в той же папке или в любых подпапках.

@using MyProjectNamespace.NestedNamespace