Я рекомендую вам прочитать эту статью MSDN на страницах макетов с использованием Razor.
Похоже, вы повторяете информацию заголовка.
Из статьи
Многие веб-сайты имеют контент, который отображается на каждой странице, например
верхний и нижний колонтитулы или поле, сообщающее пользователям, что они вошли в систему.
ASP.NET позволяет создавать отдельный файл с блоком контента, который может
содержит текст, разметку и код, как обычная веб-страница. Вы можете
затем вставьте блок контента в другие страницы на сайте, где вы
хочу, чтобы информация появилась. Таким образом, вам не нужно копировать и
вставьте одинаковое содержимое на каждую страницу.
Другими словами, на странице макета есть вся разметка, которую вы хотите повторить на каждой странице. Таким образом, вам не нужно повторять это вручную.
Страница содержимого может иметь несколько разделов, что полезно, если вы хотите
использовать макеты, которые имеют несколько областей со сменным контентом. В
страница содержания, вы даете каждому разделу уникальное имя. (По умолчанию
раздел остается без имени.) На странице макета вы добавляете RenderBody
метод, чтобы указать, где должен появиться безымянный (по умолчанию) раздел.
Затем вы добавляете отдельные методы RenderSection для визуализации именованных
разделы индивидуально.
Поскольку каждая страница может иметь несколько разделов, вы можете использовать метод RenderSection, чтобы дифференцировать их в макете.
Вот пример из статьи:
<!DOCTYPE html>
<html>
<head>
<title>Multisection Content</title>
<link href="~/Styles/Site.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="header">
<div>This content will repeat on every view that uses this layout.</div>
@RenderSection("header", required: false)
</div>
<div id="main">
@RenderBody()
</div>
</body>
</html>
Как видите, любая информация заголовка будет загружена с использованием метода RenderSection. По вашему мнению, вы должны определить этот раздел, используя код, подобный следующему:
@section header {
<div>
This content will only repeat on the page that it is declared in.
</div>
}
Итак, когда вы запустите его, вы получите:
<!DOCTYPE html>
<html>
<head>
<title>Multisection Content</title>
<link href="~/Styles/Site.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="header">
<div>This content will repeat on every view that uses this layout.</div>
<div>
This content will only repeat on the page that it is declared in.
</div>
</div>
<div id="main">
...
</div>
</body>
</html>
required:false
часть @RenderSection("header", required: false)
означает, что вам не нужно включать «заголовок» раздела в каждое представление, использующее макет. Это необязательно. Если вы не указали значение false, вам потребуется объявить его на каждой странице, использующей макет.
В добавлении к сведению убедитесь, что вы объявляете свои CSS и JavaScript только в одном из этих мест, предпочтительно на странице макета, если это будет повторяться. Это не означает, однако, что вы не можете иметь CSS и JavaScript в обоих. Например, если вы используете загрузчик в своем проекте, вы бы включили его в свою страницу макета, чтобы не повторять включение во все виды. Но вы можете, например, включить определенный файл javascript вида только в свой вид, а не в макет.