Перейти к содержанию

Использование макетов для общей разметки

Файлы макета — по больщей части обычные шаблоны Razor, содержащие разметку, общую для нескольких страниц. Может быть несколько макетов, и макеты могут ссылаться на другие макеты.
Макеты обычно помещаются в папку Pages/Shared. Существует соглашение об использовании имени _Layout.cshtml для файла базового макета. Обычно к файлам макета добавляется подчёркивание (_), чтобы отличить их от обычных шаблонов.
Файл макета похож на обычный шаблон, но в отличие от шаблона должен вызывать функцию @RenderBody().
Вот пример:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>@ViewData["Title"]</title>
        <link rel="stylesheet" href="~/css/site.css" />
    </head>
    <body>
        @RenderBody()
    </body>
</html>

Здесь мы видим, что необходимые для HTML-файла элементы, такие как <html> и <head>, а также нужные на каждой странице <title> и <link>. Также виден способ передачи данных через ViewData.

Представления могут указать, какой файл макета использовать, задав свойство Layout внутри кодового блока Razor.

@{
    Layout = "_Layout";
    ViewData["Title"] = "Home Page";
}
<h1>@ViewData["Title"]</h1>
<p>This is the home page</p>

Содержимое представления будет отображаться там, где вызвана функция @RenderBody(). Следующий пример - результат объединения макета и представления

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>Home Page</title>
        <link rel="stylesheet" href="~/css/site.css" />
    </head>
    <body>
        <h1>Home Page</h1>
        <p>This is the home page</p>
    </body>
</html>


Последнее обновление : 19 апреля 2023 г.
Дата создания : 25 сентября 2022 г.

Комментарии

Комментарии