Какова цель @RenderSection и как он работает? Я понимаю, что делают связки, но мне еще предстоит выяснить, что это делает, и это, вероятно, важно.
@RenderSection("scripts", required: false)
Возможно, небольшой пример о том, как его использовать?
Какова цель @RenderSection и как он работает? Я понимаю, что делают связки, но мне еще предстоит выяснить, что это делает, и это, вероятно, важно.
@RenderSection("scripts", required: false)
Возможно, небольшой пример о том, как его использовать?
Если у вас есть вид _Layout.cshtml, подобный этому
<html>
<body>
@RenderBody()
@RenderSection("scripts", required: false)
</body>
</html>
то вы можете иметь представление содержимого index.cshtml, подобное этому
@section scripts {
<script type="text/javascript">alert('hello');</script>
}
обязательный параметр указывает, должен ли вид с использованием страницы макета иметь раздел сценариев
Если
(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 (" скрипты ", обязательно: false)". Когда страница отображается и пользователь находится на странице, contacts.js не отображает.
<html>
<body><div>About<div>
</body>
<script type="text/javascript" src="~/lib/layout.js"></script>
</html>
если требуется, установлено значение true "@RenderSection (" scripts ", required: true)". Когда страница отображается и пользователь находится на странице ОО, отображается информация о ссылках на контакт. js STILL.
<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>
В КОРОТКЕ, если установлено значение истина, независимо от того, нужна она вам или нет на других страницах, она будет отображаться в любом случае. Если установлено значение false, оно будет отображаться только при отображении дочерней страницы.
Здесь определение Rendersection от MSDN
На страницах макета отображает содержимое именованного раздела. MSDN
На странице _layout.cs положить
@RenderSection("Bottom",false)
Здесь визуализируется содержимое раздела bootom и указывается false
логическое свойство, чтобы указать, является ли раздел обязательным или нет.
@section Bottom{
This message form bottom.
}
Это означает, что если вы хотите использовать нижний раздел на всех страницах, тогда вы должны использовать false в качестве второго параметра в методе Rendersection.