Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: AmitabhОтветов: 11

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

  • Вы также можете добавить псевдоним к импортированному пространству имен stackoverflow.com/questions/ 4798293 / mvc3-import-namespace / Surjit Samra 14.11.2011

razorwebmatrix

Ответы

Ответ 1 · рейтинг 873 · Amitabh

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

@using MyNamespace

Для VB.Net:

@Imports Mynamespace

Взгляните на ответ @ravy amiry, если вы хотите включить пространство имен в приложение.

Ответ 2 · рейтинг 405 · amiry jd

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

Ответ 3 · рейтинг 30 · Alper Şaldırak

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

@using MyNamespace

Для модели

@model MyModel

Ответ 4 · рейтинг 27 · Germán

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

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

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

Ответ 5 · рейтинг 16 · k-dev

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

В принципе, вы можете сделать это

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 · рейтинг 14 · Community

Вы должны знать одну проблему: когда вы импортируете пространство имен через web.config в Views папку, это namespace импортируется ТОЛЬКО для представлений в этой папке. Означает, что если вы хотите импортировать namespace в просмотры области, вы также должны импортировать этот namespace в файл web.config этой области, расположенный в папке Views области;

Ответ 7 · рейтинг 11 · Veer Jangid

Для пространства имен и библиотеки

@using NameSpace_Name

Для модели

@model Application_Name.Models.Model_Name

Для итерации списка на странице Razor (вы должны использовать цикл foreach для доступа к элементам списка)

@model List<Application_Name.Models.Model_Name>

@foreach (var item in Model)
   {
          <tr>
                <td>@item.srno</td>
                <td>@item.name</td>
         </tr>
   }

Ответ 8 · рейтинг 10 · Abhishek Siddhu

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

@using MyNamespace

Ответ 9 · рейтинг 3 · Howard

"using MyNamespace" работает в MVC3 RTM. Надеюсь это поможет.

Ответ 10 · рейтинг 2 · HiteshAjudiya

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

@using XX.YY.ZZ

Ответ 11 · Imran Javed

В зависимости от ваших потребностей вы можете использовать один из следующих методов:

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы