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

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

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

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

@using MyNamespace

Для VB.Net:

@Imports Mynamespace

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

734
ответ дан 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
ответ дан 17 июля '11 в 12:47
источник

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

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

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

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

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

@using MyNamespace

Для модели

@model MyModel
23
ответ дан 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
ответ дан 27 апр. '11 в 7:40
источник

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

12
ответ дан 08 сент. '11 в 2:25
источник

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

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

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

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

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

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

Другие вопросы по меткам или Задайте вопрос