Как добавить дополнительные пространства имен в страницы Razor вместо @using объявления?

Есть ли какая-то магия, которую мне нужно использовать для получения пространств имен в элементе pages/namespaces в webconfig?

            

Вышеизложенное просто не хочет работать. Я знаю, что пространство имен отлично, потому что, когда я @using MyCustomHelpers в начало страницы, он волшебным образом работает.

Это так, что я могу заставить Html.SomeFunction() работать без необходимости ставить @using в верхней части всех моих страниц

5 Solutions collect form web for “Как добавить дополнительные пространства имен в страницы Razor вместо @using объявления?”

Обновление : пожалуйста, взгляните на мой обновленный ответ, который относится к MVC 3 RC: Razor HtmlHelper Extensions (или другие пространства имен для просмотров) Не найдено

Это изменилось между MVC 3 Preview 1 и MVC 3 Beta (выпущено только сегодня). В Preview 1 Razor используется раздел конфигурации пространств имен WebForms. Однако в бета-версии есть новый раздел конфигурации, который отделен от WebForms. Вам нужно будет добавить follwing в файл web.config (или просто начать с нового проекта из шаблона):

   

Обратите внимание, что вам может потребоваться закрыть и снова открыть файл для изменений, которые будут выбраны редактором.

Обратите внимание, что есть другие изменения в том, что требуется в web.config, чтобы заставить Razor работать в бета-версии MVC3, поэтому вам лучше всего взглянуть на файл ~\View\Web.config который поставляется в шаблонах проектов Beta.

Если вы разместите свое объявление пространства имен в Web.config в корневой папке «Представления» и / или в папке «Представления» текущей области (в зависимости от того, где находится ваше представление) – она ​​должна работать должным образом.

Я нашел это http://weblogs.asp.net/mikaelsoderstrom/archive/2010/07/30/add-namespaces-with-razor.aspx, в котором объясняется, как добавить пользовательское пространство имен ко всем страницам бритвы.

В основном вы можете сделать это

 using Microsoft.WebPages.Compilation; public class PreApplicationStart { public static void InitializeApplication() { CodeGeneratorSettings.AddGlobalImport("Custom.Namespace"); } } 

и поместите следующий код в свой AssemblyInfo.cs

 [assembly: PreApplicationStartMethod(typeof(PreApplicationStart), "InitializeApplication")] 

метод InitializeApplication будет выполнен до Application_Start в global.asax

Для того, что стоит, другой метод состоит в том, чтобы просто поместить ваш вспомогательный class расширения в пространство имен System, которое по умолчанию уже включено механизмом просмотра. Например:

 namespace System.Web.Mvc { public static class HtmlHelper_MyExtensions { ... } } 

Таким образом, пока ссылка на библиотеку, содержащую class, все увидит. Поскольку вы расширяете class System.Web.Mvc , кажется разумным, чтобы использовать методы расширения в одном и том же пространстве имен.

Попробуйте закрыть и снова открыть представление, убедившись, что изменения были внесены в web.config в корневом представлении.

Закрытие и повторное открытие исправили мою проблему.

Глянь сюда:

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

  • ASP.NET MVC DropDownListFor с моделью типа Список
  • Загрузка ASP.NET MVC Razor из базы данных
  • Как реализовать пользовательский RazorViewEngine для поиска представлений в нестандартных местах?
  • Могу ли я служить .html-файлами с помощью Razor, как если бы они были .cshtml-файлами без изменения расширения всех моих страниц?
  • подтвердите выпадающий список в asp.net mvc
  • Ошибка Visual Studio 2015 «Ссылка на объект не установлена ​​в экземпляр объекта» после установки ASP.NET и веб-инструментов 2015 (RC1 Update 1)
  • MVC Razor видит, что Intellisense сломан в VS 2013/2015/2017
  • Как определить метод в Razor?
  • Render Razor Просмотр строки в ASP.NET Core
  • Неожиданное ключевое слово "foreach" после символа "@"
  • Почему привязка модели не работает в моем методе POST-действия?
  • Interesting Posts

    «Использование необъявленного типа» в Swift, хотя тип является внутренним и существует в том же модуле

    Программа и отладчик завершают работу без указания проблемы

    Android – Как позиционировать View off-screen?

    FLOPS за цикл для песчаного моста и haswell SSE2 / AVX / AVX2

    Обновление дублирующего ключа так же, как вставка

    Как преобразовать файл Excel с несколькими листами в набор файлов CSV?

    android string.xml чтение html тегов проблема

    Как использовать компонент Delphi TWebbrowser, работающий в режиме IE9?

    Видео, созданное с помощью изображений, воспроизводится только в VLC, но нет других игроков

    Заставить приложения Windows 8 Metro работать с более низким разрешением ниже 1024×768?

    Как построить строку запроса для URL-адреса в C #?

    MS Word: как я могу отформатировать весь текст с отслеживанием изменений сразу?

    Можно ли реплицировать автоматическое числовое преобразование Swifts в Foundation (NSNumber) для типов (U) Int8 / 16/32/64?

    Можно ли заставить CMake создавать статическую и общую версию одной и той же библиотеки?

    Как восстановить данные с зашифрованного жесткого диска, который был снесен «резервным разделом Microsoft»,

    Давайте будем гением компьютера.