Как импортировать пространство имен на странице просмотра Razor?
Как импортировать пространство имен на странице просмотра Razor?
- Как визуализировать Razor View для строки в ASP.NET MVC 3?
- Сохранение данных многих из многих отношений в MVC Создание представления
- Почему привязка модели не работает в моем методе POST-действия?
- Передайте параметр controllerу из @ Html.ActionLink MVC 4
- В MVC3 Razor, как мне получить html визуализированного представления внутри действия?
- Как указать различные макеты в файле ViewStart бритвы ASP.NET MVC 3?
- Render Razor отображает строку в ASP.NET 5
- MVC3 Razor DropDownListFor Enums
Наконец нашел ответ.
@using MyNamespace
Для VB.Net:
@Imports Mynamespace
Взгляните на ответ @ Javad_Amiry, если вы хотите включить пространство имен в приложение.
Первый способ – использовать инструкцию .cshtml
файлах .cshtml
, которая импортирует пространство имен только в текущий файл, а вторая:
В файле «web.config» в директории « Views
» вашего проекта (обратите внимание, что это не основной файл web.config в корне проекта) , найдите этот раздел:
. .
вы можете добавить свое собственное пространство имен так:
который добавит пространство имен ко всем файлам .cshtml (и / или .vbhtml); также вы можете изменить наследование видов отсюда, например:
С уважением.
ОБНОВЛЕНИЕ: Спасибо @ Nick Silberstein
за его напоминание о местах! Он сказал:
Если вы работаете в области , вы должны добавить namespace
в Web.config
разделе /Areas/
rather than /Views/
В ASP.NET MVC 3 Preview1 вы можете импортировать пространство имен на все ваши виды бритвы с помощью этого кода в Global.asax.cs
Microsoft.WebPages.Compilation.CodeGeneratorSettings.AddGlobalImport("Namespace.Namespace");
Я надеюсь, что в RTM это будет сделано через раздел Web.config.
Для библиотеки
@using MyNamespace
Для модели
@model MyModel
Я нашел это 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
Одна из проблем, которую вы должны знать, заключается в том, что при импорте пространства имен через web.config
в папке « Views
» это namespace
импортируется JUST для представлений в этой папке . Если вы хотите импортировать namespace
в представлениях области , вы также должны импортировать это namespace
в файле web.config
этой области, расположенном в папке Views
в области;
Вы можете попробовать это
@using MyNamespace
«Использование MyNamespace» работает в RTM MVC3. Надеюсь это поможет.
Я думаю, что для импорта пространства имен в режиме бритвы вам просто нужно добавить ниже:
@using XX.YY.ZZ
Для пространства имен и библиотеки
@using NameSpace_Name
Для модели
@model Application_Name.Models.Model_Name
Итерировать список на странице Razor (вам нужно использовать цикл foreach для доступа к элементам списка)
@model List @foreach (var item in Model) { @item.srno @item.name }