Моя основная мотивация для этого - получить Javascript, который требуется только частичным в нижней части страницы, с остальной частью Javascript, а не в середине страницы, где отображается частичная.
Вот упрощенный пример того, что я пытаюсь сделать:
Вот макет с секцией Scripts прямо перед телом.
<!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>
Здесь показан пример с использованием этого макета.
<h2>This is the view</h2>
@{Html.RenderPartial("_Partial");}
@section Scripts {
<script type="text/javascript">
alert("I'm a view.");
</script>
}
И здесь частичное отображение из представления.
<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>
}
В этом примере разметка, указанная в представлении, помещается в раздел, но разметка из частичного нет. Можно ли заполнить секцию с частичного представления с помощью Razor? Если нет, то каковы некоторые другие методы получения Javascript, которые нужны только частичным в нижней части страницы, не включая их глобально?