Ma principale motivation pour essayer de faire cela est d'obtenir le Javascript qui est seulement requis par un partiel au bas de la page avec le reste du Javascript et non au milieu de la page où le partiel est rendu.
Voici un exemple simplifié de ce que j'essaie de faire :
Voici la mise en page avec une section Scripts juste avant le corps.
<!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>
Voici un exemple de vue utilisant cette mise en page.
<h2>This is the view</h2>
@{Html.RenderPartial("_Partial");}
@section Scripts {
<script type="text/javascript">
alert("I'm a view.");
</script>
}
Et voici le rendu partiel de la vue.
<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>
}
Dans cet exemple, le balisage spécifié dans la vue est placé dans la section, mais pas le balisage du partiel. Est-il possible de remplir une section à partir d'une vue partielle avec Razor ? Si ce n'est pas le cas, quelles sont les autres méthodes pour obtenir du Javascript qui n'est nécessaire qu'aux partiels en bas de la page sans l'inclure globalement ?
0 votes
Peut-être que c'est un problème parce que vous avez une autre section script dans le partiel IDK votre code est un peu confus
1 votes
Ce n'est pas le cas. Même si la section est laissée hors de la vue, le code dans le partiel ne se retrouve pas dans la page finale rendue. Je pense que SLaks a raison de dire que les partiels ne peuvent pas participer aux sections de la vue parent.