Jika
(1) Anda memiliki tampilan _Layout.cshtml seperti ini
<html>
<body>
@RenderBody()
</body>
<script type="text/javascript" src="~/lib/layout.js"></script>
@RenderSection("scripts", required: false)
</html>
(2) Anda memiliki Contacts.cshtml
@section Scripts{
<script type="text/javascript" src="~/lib/contacts.js"></script>
}
<div class="row">
<div class="col-md-6 col-md-offset-3">
<h2> Contacts</h2>
</div>
</div>
(3) Anda memiliki About.cshtml
<div class="row">
<div class="col-md-6 col-md-offset-3">
<h2> Contacts</h2>
</div>
</div>
Pada halaman tata letak Anda, jika diperlukan diatur ke false "@RenderSection (" skrip ", diperlukan: false)", Ketika halaman merender dan pengguna berada di sekitar halaman, contacts.js tidak merender.
<html>
<body><div>About<div>
</body>
<script type="text/javascript" src="~/lib/layout.js"></script>
</html>
jika diperlukan disetel ke true "@RenderSection (" skrip ", wajib: true)", Saat laman merender dan pengguna berada di laman TENTANG, contacts.js MASIH akan dirender.
<html>
<body><div>About<div>
</body>
<script type="text/javascript" src="~/lib/layout.js"></script>
<script type="text/javascript" src="~/lib/contacts.js"></script>
</html>
DI SINGKAT, ketika disetel ke true , apakah Anda memerlukannya atau tidak di halaman lain, itu akan ditampilkan. Jika disetel ke false , itu hanya akan ditampilkan saat laman anak dirender.
Section not defined: "scripts".
ketika merender halaman Tentang Anda ketika mengatur bendera yang diperlukantrue
.Di sini pembelaan Rendersection dari
MSDN
Di halaman _layout.cs cantumkan
Di sini render konten dari bagian bootom dan tentukan
false
properti boolean untuk menentukan apakah bagian tersebut diperlukan atau tidak.Artinya jika Anda ingin bagian bawah di semua halaman, maka Anda harus menggunakan false sebagai parameter kedua di metode Rendersection.
sumber
Misalkan jika saya memiliki GetAllEmployees.cshtml
Dan tampilan lain "GetEmployeeDetails.cshtml" tanpa skrip
Dan halaman tata letak saya "_layout.cshtml"
Jadi, ketika saya menavigasi ke GetEmployeeDetails.cshtml. Saya mendapatkan kesalahan bahwa tidak ada skrip bagian yang akan ditampilkan di GetEmployeeDetails.cshtml. Jika saya mengubah flag in
@RenderSection()
darirequired : true
menjadi `` required: false`. Itu berarti merender skrip yang didefinisikan dalam skrip @section dari view jika ada. Coba, jangan lakukan apa-apa. Dan pendekatan yang disempurnakan akan dalam _layout.cshtmlsumber