Как импортировать пространство имен на странице просмотра 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