Моя основная мотивация для попытки сделать это - получить Javascript, который требуется только для части в нижней части страницы с остальной частью Javascript, а не в середине страницы, где отображается часть.
Вот упрощенный пример того, что я пытаюсь сделать:
Вот макет с разделом скриптов прямо перед телом.
<!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, который нужен только частичным элементам внизу страницы, без его глобального включения?