Wenn
(1) Sie haben eine _Layout.cshtml-Ansicht wie diese
<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>
Wenn auf Ihrer Layoutseite bei Bedarf "false" @RenderSection ("scripts", erforderlich: false) "festgelegt ist, wird die Datei" contacts.js "nicht gerendert, wenn die Seite gerendert wird und sich der Benutzer auf einer Seite befindet.
<html>
<body><div>About<div>
</body>
<script type="text/javascript" src="~/lib/layout.js"></script>
</html>
Wenn erforderlich, wird "@RenderSection (" scripts ", erforderlich: true)" auf "true" gesetzt. Wenn die Seite gerendert wird und sich der Benutzer auf der Seite "ÜBER" befindet, wird "contacts.js STILL" gerendert.
<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, wenn auf true gesetzt , ob Sie es auf anderen Seiten benötigen oder nicht, wird es trotzdem gerendert. Wenn false festgelegt ist , wird nur gerendert, wenn die untergeordnete Seite gerendert wird.
Section not defined: "scripts".
beim Rendern Ihrer Info-Seite eine erhalten, wenn Sie das erforderliche Flag setzentrue
.Hier die Definition von Rendersection aus
MSDN
In _layout.cs Seite setzen
Hier wird der Inhalt des Bootom-Abschnitts gerendert und die
false
boolesche Eigenschaft angegeben, um anzugeben, ob der Abschnitt erforderlich ist oder nicht.Das heißt, wenn Sie den unteren Abschnitt auf allen Seiten schließen möchten, müssen Sie false als zweiten Parameter bei der Rendersection-Methode verwenden.
quelle
Angenommen, ich habe GetAllEmployees.cshtml
Und eine andere Ansicht "GetEmployeeDetails.cshtml" ohne Skripte
Und meine Layoutseite "_layout.cshtml"
Wenn ich also zu GetEmployeeDetails.cshtml navigiere. Ich erhalte die Fehlermeldung, dass in GetEmployeeDetails.cshtml keine Abschnittsskripte gerendert werden müssen. Wenn ich das Flag
@RenderSection()
vonrequired : true
"Erforderlich: Falsch" ändere. Dies bedeutet, dass die in den @ section-Skripten der Ansichten definierten Skripte gerendert werden, falls vorhanden. Andernfalls nichts tun. Und der verfeinerte Ansatz wäre in _layout.cshtmlquelle