<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 указывается имя частичного представления с путем, начинающимся с текущего каталога представления, которым в данном случае является
Views\Shared
.
Частичное представление 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>
<b> <partial name="Partials/_Head" /></b>
</head>
<body>
<header>
<b> <partial name="Partials/_Menu" /></b>
</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>
<b> <partial name="Partials/_JavaScriptFiles" /></b>
@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);