Motivasi utama saya untuk mencoba melakukan ini adalah untuk mendapatkan Javascript yang hanya diperlukan oleh sebagian di bagian bawah halaman dengan Javascript lainnya dan bukan di tengah halaman tempat sebagian dirender.
Berikut adalah contoh sederhana dari apa yang saya coba lakukan:
Berikut adalah tata letak dengan bagian Skrip tepat di depan badan.
<!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>
Berikut adalah contoh tampilan yang menggunakan tata letak ini.
<h2>This is the view</h2>
@{Html.RenderPartial("_Partial");}
@section Scripts {
<script type="text/javascript">
alert("I'm a view.");
</script>
}
Dan inilah sebagian yang dirender dari tampilan.
<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>
}
Dalam contoh ini, markup yang ditentukan dalam tampilan ditempatkan ke dalam bagian, tetapi markup dari parsial tidak. Apakah mungkin untuk mengisi bagian dari pandangan parsial dengan Razor? Jika tidak, apa sajakah metode lain untuk mendapatkan Javascript yang hanya dibutuhkan sebagian di bagian bawah halaman tanpa menyertakannya secara global?