Если
(1) у вас есть представление _Layout.cshtml, как это
<html>
<body>
@RenderBody()
</body>
<script type="text/javascript" src="~/lib/layout.js"></script>
@RenderSection("scripts", required: false)
</html>
(2) у вас есть Contacts.cshtml
@section Scripts{
<script type="text/javascript" src="~/lib/contacts.js"></script>
}
<div class="row">
<div class="col-md-6 col-md-offset-3">
<h2> Contacts</h2>
</div>
</div>
(3) у вас есть About.cshtml
<div class="row">
<div class="col-md-6 col-md-offset-3">
<h2> Contacts</h2>
</div>
</div>
На странице макета, если требуется, установлено значение false "@RenderSection (" scripts ", required: false)", когда страница отображается и пользователь находится около страницы, contacts.js не отображает.
<html>
<body><div>About<div>
</body>
<script type="text/javascript" src="~/lib/layout.js"></script>
</html>
если обязательный параметр установлен в значение «@RenderSection (« scripts », required: true)», когда страница отображается и пользователь находится на странице «О», то contact.js ОСТАЕТСЯ визуализированным.
<html>
<body><div>About<div>
</body>
<script type="text/javascript" src="~/lib/layout.js"></script>
<script type="text/javascript" src="~/lib/contacts.js"></script>
</html>
КОРОТКО, если задано значение true , нужно ли вам это или нет на других страницах, оно все равно будет отображаться. Если задано значение false , оно будет отображаться только при отображении дочерней страницы.
Section not defined: "scripts".
когда будете отображать страницу «О нас» при установке необходимого флагаtrue
.Здесь определение Rendersection от
MSDN
На странице _layout.cs положить
Здесь визуализируется содержимое раздела bootom и указывается
false
логическое свойство, чтобы указать, является ли раздел обязательным или нет.Это означает, что если вы хотите использовать нижний раздел на всех страницах, то вы должны использовать false в качестве второго параметра в методе Rendersection.
источник
Предположим, если у меня есть GetAllEmployees.cshtml
И еще одно представление «GetEmployeeDetails.cshtml» без сценариев
И мой макет страницы "_layout.cshtml"
Итак, когда я перехожу к GetEmployeeDetails.cshtml. Я получаю сообщение об ошибке, что в GetEmployeeDetails.cshtml нет скриптов раздела. Если я поменяю флаг
@RenderSection()
сrequired : true
на `` required: false`. Это означает визуализацию сценариев, определенных в сценариях @section представлений, если они есть. Иначе ничего не делать. И изысканный подход был бы в _layout.cshtmlисточник