Meine Hauptmotivation für diesen Versuch besteht darin, Javascript zu erhalten, das nur von einem Teil am Ende der Seite mit dem Rest des Javascript und nicht in der Mitte der Seite, auf der der Teil gerendert wird, benötigt wird.
Hier ist ein vereinfachtes Beispiel dafür, was ich versuche:
Hier ist das Layout mit einem Skriptabschnitt direkt vor dem Text.
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
</head>
<body>
@RenderBody()
<script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>
@RenderSection("Scripts", false)
</body>
</html>
Hier ist eine Beispielansicht mit diesem Layout.
<h2>This is the view</h2>
@{Html.RenderPartial("_Partial");}
@section Scripts {
<script type="text/javascript">
alert("I'm a view.");
</script>
}
Und hier ist der Teil, der aus der Ansicht gerendert wird.
<p>This is the partial.</p>
@* this never makes it into the rendered page *@
@section Scripts {
<script type="text/javascript">
alert("I'm a partial.");
</script>
}
In diesem Beispiel wird das in der Ansicht angegebene Markup in den Abschnitt eingefügt, das Markup aus dem Teil jedoch nicht. Ist es möglich, einen Abschnitt aus einer Teilansicht mit Razor zu füllen? Wenn nicht, welche anderen Methoden gibt es, um Javascript zu erhalten, das nur von Partials am Ende der Seite benötigt wird, ohne es global einzuschließen?