Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
<tbody> @foreach (var item in Model) { <tr> @if (showMake) { <td> @Html.DisplayFor(modelItem => item.MakeNavigation.Name) </td> } <td> @Html.DisplayFor(modelItem => item.Color) </td> <td> @Html.DisplayFor(modelItem => item.PetName) </td> <td> <item-edit item-id="@item.Id"></item-edit> | <item-details item-id="@item.Id"></item-details> | <item-delete item-id="@item.Id"></item-delete> </td> </tr> } </tbody></table>Представление Index
При наличии частичного представления
_CarListPartialIndexViewsCarsIndex.cshtml@model IEnumerable<Car>@{ ViewData["Title"] = "Index";}<h1>Vehicle Inventory</h1><partial name="Partials/_CarListPartial" model="@Model"/>Частичное представление
_CarListPartialIEnumerable<Car>model<partial>Чтобы взглянуть на представление
IndexIndex()CarsController[Route("/[controller]")][Route("/[controller]/[action]")]public IActionResult Index() => View(_repo.GetAllIgnoreQueryFilters());Запустив приложение и перейдя по ссылке
https://localhost:5001/Cars/Index
В правой части списка отображаются специальные вспомогательные функции дескрипторов.
Представление ВуMake
Представление
ВуMakeIndexViewsCarsВуMake.cshtml@model IEnumerable<Car>@{ ViewData["Title"] = "Index";}<h1>Vehicle Inventory for @ViewBag.MakeName</h1>@{ var mode = new ViewDataDictionary(ViewData) {{"ByMake", true}};}<partial name="Partials/_CarListPartial" model="Model" view-data="@mode"/>Отличия заметить легко. Здесь создается экземпляр
ViewDataDictionaryByMakeViewBagMakeIdViewBagMakeNameCarsControllerByMake()[HttpGet("/[controller]/[action]/{makeId}/{makeName}")]public IActionResult ByMake(int makeId, string makeName){ ViewBag.MakeName = makeName; return View(_repo.GetAllBy(makeId));}Запустив приложение и перейдя по ссылке
https://localhost:5001/Cars/l/VW
Представление Details
Создайте в каталоге
ViewsCarsDetails.cshtml