Язык программирования C#9 и платформа .NET5
Шрифт:
Шаблон отображения Car
Создайте внутри каталога
Views
новый каталог по имени Cars
, а внутри него — каталог под названием DisplayTemplates
. Добавьте в каталог DisplayTemplates
новое представление по имени Car.cshtml
. Удалите сгенерированный код вместе с комментариями и замените его показанным ниже кодом, который отображает сущность Car
:
@model AutoLot.Models.Entities.Car
<dl class="row">
<dt class="col-sm-2">
@Html.DisplayNameFor(model => model.MakeId)
</dt>
<dd class="col-sm-10">
@Html.DisplayFor(model => model.MakeNavigation.Name)
</dd>
<dt class="col-sm-2">
@Html.DisplayNameFor(model => model.Color)
</dt>
<dd class="col-sm-10">
@Html.DisplayFor(model => model.Color)
</dd>
<dt class="col-sm-2">
@Html.DisplayNameFor(model => model.PetName)
</dt>
<dd class="col-sm-10">
@Html.DisplayFor(model => model.PetName)
</dd>
</dl>
Вспомогательная
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
<hr />
<div>
<dl class="row">
<dt class="col-sm-2">
@Html.DisplayNameFor(model => model.PetName)
</dt>
<dd class="col-sm-10">
@Html.DisplayFor(model => model.PetName)
</dd>
<dt class="col-sm-2">
@Html.DisplayNameFor(model => model.MakeNavigation)
</dt>
<dd class="col-sm-10">
@Html.DisplayFor(model => model.MakeNavigation.Name)
</dd>
<dt class="col-sm-2">
@Html.DisplayNameFor(model => model.Color)
</dt>
<dd class="col-sm-10" style="color:@Model.Color">
@Html.DisplayFor(model => model.Color)
</dd>
</dl>
</div>
Чтобы применить шаблон
CarWithColors.cshtml
вместо Car.cshtml
, вызовите DisplayForModel
с именем шаблона (обратите внимание, что правила местоположения по-прежнему актуальны):
@Html.DisplayForModel("CarWithColors")
Каталог EditorTemplates
Каталог
EditorTemplates
работает аналогично каталогу DisplayTemplates
, но находящиеся в нем шаблоны используются для редактирования. Шаблон редактирования Car
Создайте внутри каталога
Views\Cars
новый каталог под названием EditorTemplates
и добавьте в него новое представление по имени Car.cshtml
. Удалите сгенерированный код вместе с комментариями и замените его показанным ниже кодом, который является разметкой для редактирования сущности Car
:
@model Car
<div asp-validation-summary="All" class="text-danger"></div>
<div class="form-group">
<label asp-for="PetName" class="col-form-label"></label>
<input asp-for="PetName" class="form-control" />
<span asp-validation-for="PetName" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="MakeId" class="col-form-label"></label>
Поделиться:
Популярные книги
Инцел на службе демоницы 1 и 2: Секса будет много
Инцел на службе демоницы
Фантастика:
фэнтези
5.25
рейтинг книги
Весь цикл «Десантник на престоле». Шесть книг
Десантник на престоле
Фантастика:
альтернативная история
8.38
рейтинг книги
Предатель. Цена ошибки
Измена
Любовные романы:
современные любовные романы
5.75
рейтинг книги
Жандарм 2
2. Жандарм
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Прогрессор поневоле
2. Фараон
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Всемирная энциклопедия афоризмов. Собрание мудрости всех народов и времен
Документальная литература:
публицистика
5.40
рейтинг книги
Истребитель. Ас из будущего
Фантастика:
боевая фантастика
попаданцы
альтернативная история
5.25
рейтинг книги
Очешуеть! Я - жена дракона?!
Фантастика:
юмористическая фантастика
5.43
рейтинг книги
Отмороженный 4.0
4. Отмороженный
Фантастика:
боевая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Треугольная шляпа. Пепита Хименес. Донья Перфекта. Кровь и песок.
65. Библиотека всемирной литературы
Проза:
классическая проза
5.00
рейтинг книги
Измена. Жизнь заново
1. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Три `Д` для миллиардера. Свадебный салон
Любовные романы:
современные любовные романы
короткие любовные романы
7.14
рейтинг книги
Бастард Императора. Том 5
5. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Идеальный мир для Лекаря 21
21. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00