Wenn
(1) haben Sie eine _Layout.cshtml Ansicht wie dieser
<html>
<body>
@RenderBody()
</body>
<script type="text/javascript" src="~/lib/layout.js"></script>
@RenderSection("scripts", required: false)
</html>
(2) Sie haben 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) Sie haben About.cshtml
<div class="row">
<div class="col-md-6 col-md-offset-3">
<h2> Contacts</h2>
</div>
</div>
Auf Ihrer Layoutseite wird, falls erforderlich, auf false gesetzt "@RenderSection (" scripts ", erforderlich: false)" Wenn die Seite rendert und der Benutzer sich auf der Seite befindet, wird contacts.js nicht gerendert.
<html>
<body><div>About<div>
</body>
<script type="text/javascript" src="~/lib/layout.js"></script>
</html>
wenn gesetzt erforderlich ist, um wahr „@RenderSection (“ Skripte „erforderlich: true)“ Wenn Seite rendert und Benutzer auf ÜBER Seite, die contacts.js STILL gerendert wird.
<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>
Kurz gesagt, wenn auf wahr, ob Sie es oder nicht auf anderen Seiten benötigen, wird es sowieso gemacht bekommen. Wenn der Wert false ist, wird er nur gerendert, wenn die untergeordnete Seite gerendert wird.
Dies ist nicht korrekt. Sie sollten Ihre Antwort selbst versuchen, und Sie werden feststellen, dass Sie eine 'Section not defined:" scripts ".' Beim Rendern Ihrer About-Seite bekommen, wenn Sie die Flagge auf 'true' setzen. – cgijbels