Литмир - Электронная Библиотека
A
A

<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>  &lt;partial name=&quot;Partials/_Head&quot; /&gt;</b>

&lt;/head&gt;

&lt;body&gt;

  &lt;header&gt;

<b>    &lt;partial name=&quot;Partials/_Menu&quot; /&gt;</b>

  &lt;/header&gt;

  &lt;div class=&quot;container&quot;&gt;

    &lt;main role=&quot;main&quot; class=&quot;pb-3&quot;&gt;

      @RenderBody()

    &lt;/main&gt;

  &lt;/div&gt;

  &lt;footer class=&quot;border-top footer text-muted&quot;&gt;

    &lt;div class=&quot;container&quot;&gt;

       &copy; 2021 - AutoLot.Mvc - &lt;a asp-area=&quot;&quot; asp-controller=&quot;Home&quot;

asp-action=&quot;Privacy&quot;&gt;Privacy&lt;/a&gt;

    &lt;/div&gt;

  &lt;/footer&gt;

<b>   &lt;partial name=&quot;Partials/_JavaScriptFiles&quot; /&gt;</b>

  @await RenderSectionAsync(&quot;Scripts&quot;, required: false)

&lt;/body&gt;

&lt;/html&gt;

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

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

&lt;partial&gt;
).

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

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

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

@model IEnumerable&lt;Order&gt;

Свойство

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

@foreach (var item in Model)

{

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

}

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

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

[HttpGet]

public IActionResult RazorSyntax([FromServices] ICarRepo carRepo)

{

  var car = carRepo.Find(1);

615
{"b":"847442","o":1}