Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
Класс CarsController
Класс
CarsController
AutoLot.Mvc
CarsController
CarsController
AutoLot.Api
Приведите операторы
using
CarsController
using AutoLot.Dal.Repos.Interfaces;
using AutoLot.Models.Entities;
using AutoLot.Services.Logging;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Rendering;
Ранее вы добавили класс контроллера с маршрутом. Теперь наступило время добавить экземпляры реализаций
ICarRepo
IAppLogging<CarsController>
private readonly ICarRepo _repo;
private readonly IAppLogging<CarsController> _logging;
public CarsController(ICarRepo repo, IAppLogging<CarsController> logging)
{
_repo = repo;
_logging = logging;
}
Частичное представление списка автомобилей
Списковые представления (одно для целого реестра автомобилей и одно для списка автомобилей по производителям) совместно используют частичное представление. Создайте в каталоге
ViewsCars
Partials
_CarListPartial.cshtml
IEnumerable<Car>
_ViewImports.cshtml
AutoLot.Models.Entities
@model IEnumerable< Car>
Далее добавьте блок кода Razor с набором булевских переменных, которые указывают, должны ли отображаться производители. Когда частичное представление
CarListPartial.cshtml
Make
@{
var showMake = true;
if (bool.TryParse(ViewBag.ByMake?.ToString(), out bool byMake))
{
showMake = !byMake;
}
}
В следующей разметке
ItemCreateTagHelper
Create()
HttpGet
TagHelper
<p>
<item-create></item-create>
</p>
Для настройки таблицы и ее заголовков применяется вспомогательная функция HTML, посредством которой получаются значения
DisplayName
DisplayName
Display
DisplayName
<table class="table">
<thead>
<tr>
@if (showMake)
{
<th>
@Html.DisplayNameFor(model => model.MakeId)
</th>
}
<th>
@Html.DisplayNameFor(model => model.Color)
</th>
<th>
@Html.DisplayNameFor(model => model.PetName)
</th>
<th></th>
</tr>
</thead>
В последнем разделе производится проход по записям и их отображение с использованием вспомогательной функции HTML по имени
DisplayFor()
Car
DateTime
DisplayTemplate
В следующем блоке также задействованы специальные вспомогательные функции дескрипторов
item-edit
item-details
item-delete