Язык программирования C#9 и платформа .NET5 - Страница 615

Изменить размер шрифта:

<meta name="viewport" content="width=device-width, initial-scale=1.0" />

<title>@ViewData["Title"] - AutoLot.Mvc</title>

<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />

<link rel="stylesheet" href="~/css/site.css" />

Замените разметку, удаленную из файла

_Layout.cshtml
, вызовом для визуализации нового частичного представления:

<head>

  <partial name="Partials/_Head"/>

</head>

Дескриптор

<partial>
— это еще один пример вспомогательной функции дескриптора. В атрибуте name указывается имя частичного представления с путем, начинающимся с текущего каталога представления, которым в данном случае является
ViewsShared
.

Частичное представление Menu

Для частичного представления

Menu
вырежьте всю разметку между дескрипторами
<header></header>
(не
<headx/head>
) и вставьте ее в файл
Menu.cshtml
. Модифицируйте файл
Layout.cshtml
, чтобы визуализировать частичное представление
Menu
:

<header>

  <partial name="Partials/_Menu"/>

</header>

Частичное представление JavaScriptFiles

Наконец, вырежьте дескрипторы

<script>
для файлов JavaScript и вставьте их в частичное представление
JavaScriptFiles
. Удостоверьтесь в том, что оставили дескриптор
RenderSection
на своем месте. Вот частичное представление
JavaScriptFiles
:

<script src="~/lib/jquery/dist/jquery.min.js"></script>

<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>

<script src="~/js/site.js" asp-append-version="true"></script>

Ниже приведена текущая разметка в файле

_Layout.cshtml
:

<!DOCTYPE html>

<html lang="en">

<head>

  <partial name="Partials/_Head" />

</head>

<body>

  <header>

    <partial name="Partials/_Menu" />

  </header>

  <div class="container">

    <main role="main" class="pb-3">

      @RenderBody()

    </main>

  </div>

  <footer class="border-top footer text-muted">

    <div class="container">

       © 2021 - AutoLot.Mvc - <a asp-area="" asp-controller="Home"

asp-action="Privacy">Privacy</a>

    </div>

  </footer>

   <partial name="Partials/_JavaScriptFiles" />

  @await RenderSectionAsync("Scripts", required: false)

</body>

</html>

Отправка данных представлениям

Существует несколько способов отправки данных представлению. В случае строго типизированных представлений данные можно отправлять, когда представления визуализируются (либо из метода действия, либо через вспомогательную функцию дескриптора

<partial>
).

Строго типизированные представления и модели представлений

При передаче методу

View()
модели или модели представления значение присваивается свойству
@model
строго типизированного представления (обратите внимание на букву
m
в нижнем регистре):

@model IEnumerable<Order>

Свойство

@model
устанавливает тип для представления, к которому затем можно получать доступ с использованием Razor-команды
@Model
(обратите внимание на букву
М
в верхнем регистре):

@foreach (var item in Model)

{

  // Делать что-то.

}

В методе действия

RazorViewSyntax()
демонстрируется представление, получающее данные из этого метода действия:

[HttpGet]

public IActionResult RazorSyntax([FromServices] ICarRepo carRepo)

{

  var car = carRepo.Find(1);

Оригинальный текст книги читать онлайн бесплатно в онлайн-библиотеке Knigger.com