Добавьте пространство имен проектов в 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>
Он не работает.
Ответы
Ответ 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