Как импортировать пространство имен на странице просмотра Razor?

Как импортировать пространство имен на странице просмотра Razor?

637
задан Amitabh 13 июля '10 в 19:03
источник поделиться

9 ответов

Наконец нашел ответ.

@using MyNamespace

Для VB.Net:

@Imports Mynamespace

Посмотрите на @Javad_Amiry ответ, если вы хотите включить пространство имен в приложение.

734
ответ дан Amitabh 14 июля '10 в 12:38
источник поделиться

Первый способ - использовать оператор @using в файлах .cshtml, который импортирует пространство имен только в текущий файл, а второй:

В файле "web.config" в каталоге "Views" вашего проекта (обратите внимание, что это не основной файл web.config в корне проекта), найдите этот раздел:

<system.web.webPages.razor>
  <pages pageBaseType="System.Web.Mvc.WebViewPage">
    <namespaces>
      <add namespace="System.Web.Mvc" />
      <add namespace="System.Web.Mvc.Ajax" />
      .
      .
      <!-- etc -->
    </namespaces>
  </pages>
</system.web.webPages.razor>

вы можете добавить свое собственное пространство имен так:

<add namespace="My.Custom" />

который добавит пространство имен ко всем файлам .cshtml(и/или .vbhtml); также вы можете изменить наследование видов отсюда, например:

<pages pageBaseType="My.Custom.MyWebViewPage">

С уважением.


ОБНОВЛЕНИЕ: Благодаря @ Nick Silberstein к его напоминанию о местах! Он сказал:

Если вы работаете в области, вы должны добавить namespace в Web.config в <<29 > , а не /Views/

362
ответ дан Javad_Amiry 17 июля '11 в 12:47
источник поделиться

В ASP.NET MVC 3 Preview1 вы можете импортировать пространство имен во всех ваших представлениях бритвы с помощью этого кода в Global.asax.cs

Microsoft.WebPages.Compilation.CodeGeneratorSettings.AddGlobalImport("Namespace.Namespace");

Я надеюсь, что в RTM это будет сделано через раздел Web.config.

27
ответ дан Germán 28 июля '10 в 9:47
источник поделиться

Для библиотеки

@using MyNamespace

Для модели

@model MyModel
23
ответ дан Alper Şaldırak 19 янв. '16 в 11:03
источник поделиться

Я нашел этот 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

15
ответ дан k-dev 27 апр. '11 в 7:40
источник поделиться

Одна из проблем, которую вы должны знать, заключается в том, что при импорте пространства имен через web.config в папку Views, namespace импортируется JUST для представлений в этой папке. Если вы хотите импортировать namespace в представлениях области, вы также должны импортировать этот namespace в этом файле web.config, расположенном в папке Views;

12
ответ дан user933765 08 сент. '11 в 2:25
источник поделиться

Вы можете попробовать это

@using MyNamespace
3
ответ дан Abhishek Siddhu 01 июля '17 в 23:54
источник поделиться

"использование MyNamespace" работает в RTM MVC3. Надеюсь, это поможет.

3
ответ дан Howard 15 янв. '11 в 19:28
источник поделиться

Я думаю, что для импорта пространства имен в режиме бритвы вам просто нужно добавить ниже:

@using XX.YY.ZZ
2
ответ дан HiteshAjudiya 03 дек. '15 в 16:39
источник поделиться

Другие вопросы по меткам