Чтение онлайн

на главную - закладки

Жанры

Язык программирования 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>

Вспомогательная

функция 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

<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
рейтинг книги
Инцел на службе демоницы 1 и 2: Секса будет много

Весь цикл «Десантник на престоле». Шесть книг

Ланцов Михаил Алексеевич
Десантник на престоле
Фантастика:
альтернативная история
8.38
рейтинг книги
Весь цикл «Десантник на престоле». Шесть книг

Предатель. Цена ошибки

Кучер Ая
Измена
Любовные романы:
современные любовные романы
5.75
рейтинг книги
Предатель. Цена ошибки

Жандарм 2

Семин Никита
2. Жандарм
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Жандарм 2

Прогрессор поневоле

Распопов Дмитрий Викторович
2. Фараон
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прогрессор поневоле

Всемирная энциклопедия афоризмов. Собрание мудрости всех народов и времен

Агеева Елена А.
Документальная литература:
публицистика
5.40
рейтинг книги
Всемирная энциклопедия афоризмов. Собрание мудрости всех народов и времен

Истребитель. Ас из будущего

Корчевский Юрий Григорьевич
Фантастика:
боевая фантастика
попаданцы
альтернативная история
5.25
рейтинг книги
Истребитель. Ас из будущего

Очешуеть! Я - жена дракона?!

Амеличева Елена
Фантастика:
юмористическая фантастика
5.43
рейтинг книги
Очешуеть! Я - жена дракона?!

Отмороженный 4.0

Гарцевич Евгений Александрович
4. Отмороженный
Фантастика:
боевая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Отмороженный 4.0

Треугольная шляпа. Пепита Хименес. Донья Перфекта. Кровь и песок.

Бласко Висенте Ибаньес
65. Библиотека всемирной литературы
Проза:
классическая проза
5.00
рейтинг книги
Треугольная шляпа.
Пепита Хименес.
Донья Перфекта.
Кровь и песок.

Измена. Жизнь заново

Верди Алиса
1. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Жизнь заново

Три `Д` для миллиардера. Свадебный салон

Тоцка Тала
Любовные романы:
современные любовные романы
короткие любовные романы
7.14
рейтинг книги
Три `Д` для миллиардера. Свадебный салон

Бастард Императора. Том 5

Орлов Андрей Юрьевич
5. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 5

Идеальный мир для Лекаря 21

Сапфир Олег
21. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 21