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

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

Ответ 1

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

@using MyNamespace

Для VB.Net:

@Imports Mynamespace

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

Ответ 2

Первый способ - использовать оператор @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/

Ответ 3

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

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

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

Ответ 4

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

@using MyNamespace

Для модели

@model MyModel

Ответ 5

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

Ответ 6

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

Ответ 7

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

Ответ 8

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

@using MyNamespace

Ответ 9

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

@using XX.YY.ZZ