Minha principal motivação para tentar fazer isso é obter o Javascript que só é exigido por uma parcial na parte inferior da página com o restante do Javascript e não no meio da página onde a parcial é renderizada.
Aqui está um exemplo simplificado do que estou tentando fazer:
Aqui está o layout com uma seção de Scripts logo antes do corpo.
<!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>
Aqui está um exemplo de visualização usando este layout.
<h2>This is the view</h2>
@{Html.RenderPartial("_Partial");}
@section Scripts {
<script type="text/javascript">
alert("I'm a view.");
</script>
}
E aqui está o parcial sendo renderizado a partir da vista.
<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>
}
Neste exemplo, a marcação especificada na vista é colocada na seção, mas a marcação parcial não é. É possível preencher uma seção de uma visualização parcial com o Razor? Se não, quais são alguns outros métodos de obtenção de Javascript que são necessários apenas para parciais na parte inferior da página, sem incluí-lo globalmente?