Как импортировать пространство имен на страницу просмотра Razor?
Вопрос
Как импортировать пространство имен на страницу просмотра Razor?
- Вы также можете добавить псевдоним к импортированному пространству имен stackoverflow.com/questions/ 4798293 / mvc3-import-namespace / Surjit Samra 14.11.2011
Ответы
Ответ 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
В зависимости от ваших потребностей вы можете использовать один из следующих методов:
- В первой строке / ах представления добавьте "using your.domainName;" (если это требуется только в конкретном виде)
если требуется во всех последующих представлениях, добавьте "using your.domainName;" в _ViewStart.cshtml. Вы можете найти больше об этом в: Где и как связан ли файл макета _ViewStart.cshtml?
Или добавьте ссылку на сборку в View web.config, как описано другими, объясненными в: Как реализовать @using во всех представлениях в Asp.Net MVC 3?
Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.
Похожие материалы
- Поток Azure Active Directory для веб-приложения, запущенный из Office 365
- При выборе значения из раскрывающегося списка сбрасываются все остальные значения раскрывающегося списка.
- Может ли приложение .Net одновременно поддерживать директиву AspCompat и WebSockets (используемые SignalR)?
- URL-адрес ответа в приложении Azure AD с OpenIDConnect
- Выпадающее меню VS 2015 Razor Autocomplete / Intellisense скрывается сразу после раскрывающегося списка
- Когда использовать @await Html.PartialAsync в представлении в MVC 6