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

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

+637
13 июл. '10 в 16:03
источник поделиться
9 ответов

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

@using MyNamespace

Для VB.Net:

@Imports Mynamespace

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

+734
14 июл. '10 в 9: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 в 9:47
источник

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

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

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

+27
28 июл. '10 в 6:47
источник

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

@using MyNamespace

Для модели

@model MyModel
+23
19 янв. '16 в 8: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 в 4:40
источник

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

+12
07 сент. '11 в 23:25
источник

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

@using MyNamespace
+3
01 июл. '17 в 20:54
источник

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

+3
15 янв. '11 в 16:28
источник

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

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

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