Вспомогательная функция HTML под названием DisplayNameFor
Display(Name="")
, или атрибутом DisplayName("")
, и тогда применяется отображаемое значение. Метод DisplayFor
отображает значение для свойства модели, указанное в выражении. Обратите внимание, что для получения названия производителя используется навигационное свойство MakeNavigation
.Запустив приложение и перейдя на страницу RazorSyntax
Car
не применяется. Причина в том, что шаблон находится в каталоге представления Cars
, а метод действия RazorSyntax
и представление вызываются из HomeController
. Методы действий в HomeController
будут осуществлять поиск представлений в каталогах Home
и Shared
и потому не найдут шаблон отображения Car
.Если вы переместите файл Car.cshtml
Shared\DisplayTemplates
, тогда представление RazorSyntax
будет использовать шаблон отображения Car
.Шаблон отображения CarWithColor
Шаблон CarWithColor
Car
. Разница в том, что этот шаблон изменяет цвет текста Color (Цвет) на основе значения свойства Color
модели. Добавьте в каталог Cars\DisplayTemplates
новый шаблон по имени CarWithColors.cshtml
и приведите разметку к следующему виду:@model Car
@Html.DisplayNameFor(model => model.PetName)
@Html.DisplayFor(model => model.PetName)
@Html.DisplayNameFor(model => model.MakeNavigation)
@Html.DisplayFor(model => model.MakeNavigation.Name)
@Html.DisplayNameFor(model => model.Color)
@Html.DisplayFor(model => model.Color)
Чтобы применить шаблон CarWithColors.cshtml
Car.cshtml
, вызовите DisplayForModel
с именем шаблона (обратите внимание, что правила местоположения по-прежнему актуальны):@Html.DisplayForModel("CarWithColors"
Каталог EditorTemplates
Каталог EditorTemplates
DisplayTemplates
, но находящиеся в нем шаблоны используются для редактирования.Шаблон редактирования Car
Создайте внутри каталога Views\Cars
EditorTemplates
и добавьте в него новое представление по имени Car.cshtml
. Удалите сгенерированный код вместе с комментариями и замените его показанным ниже кодом, который является разметкой для редактирования сущности Car
:@model Car
В шаблоне редактирования задействовано несколько вспомогательных функций дескрипторов (asp-for
asp-items
, asp-validation-for
и asp-validation-summary
), которые рассматриваются позже в главе.Шаблон редактирования Car
EditorFor
и EditorForModel
. Подобно шаблонам отображения упомянутые функции будут искать представление с именем Car.cshtml
или с таким же именем, как у метода.Компоновки
По аналогии с мастер-страницами Web Forms в MVC поддерживаются компоновки, которые совместно используются представлениями, чтобы обеспечить согласованный внешний вид страниц сайта. Перейдите в каталог Views\Shared
_Layout.cshtml
. Это полноценный HTML-файл с дескрипторами
и
.Файл _Layout.cshtml
_Layout.cshtml
следующую строку кода Razor:@RenderBody
Эта строка указывает странице компоновки, где визуализировать представление. Теперь перейдите к строке, расположенной прямо перед закрывающим дескриптором
Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова
Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT