Я попытался добавить пространства имен к configuration/system.web/pages/namespaces
в web.config моего приложения ASP.NET MVC 3, чтобы использовать классы в этих пространствах имен в своих представлениях без необходимости использования @using, однако это не имеет никакого эффекта. Как добавить пространства имен в мои представления?
Добавление пространств имен в представления ASP.NET MVC 3
Ответ 1
Бритва MVC имеет другую область для пространств имен.
Посмотрите на второй файл web.config, который находится в папке "Представления" и таким образом добавьте пространства имен.
<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="Telerik.Web.Mvc.UI;"/>
</namespaces>
</pages>
</system.web.webPages.razor>
Ответ 2
Я не уверен, почему это так flaky, но есть вероятность, что он на самом деле работает, но Visual Studio не узнает его, пока вы не закрываете и не открываете вид, в котором вы находитесь. Также убедитесь, что вы в файле web.config, который находится в каталоге представлений.
Ответ 3
Я использовал этот метод для включения файлов ресурсов в свои представления, но Razor не хотел брать мои классы. После некоторого притягивания волос я понял, что не изменил модификатор доступа в файле Resources.resx
на общедоступный (он по умолчанию был создан как Internal). Как только я изменил его и перекомпилировал, я смог получить доступ к своим ресурсам из всех представлений.
Ошибка новичков, ненависть, чтобы это произошло, но, надеюсь, это сэкономит кому-то боль.