Sorunum, temel şablonda @RenderSection
tanımlandığında yuvalanmış bir şablondan @RenderSection
kullanamıyorum. Şu anda, görünüm sayfalarında kullanılan bir alt şablona bağlı bir yuvalanmış temel şablonum var. Temel şablonda @RenderSection
'u tanımladığımda ve görüntü sayfalarında oluşturduğumda bir hata atar.@RenderSection iç içe geçmiş jilet şablonları
İşte tam olarak sorun.
Özel komut dosyaları eklememe izin vermek için bir RenderSection oluşturmak istiyorum. Orada herhangi bir özel kafa kodu koymak ve sayfanın kendisine uygulamak istemiyoruz olarak Benim baz şablon ....
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
@RenderSection("HeaderContent", false) // The region of the header scripts (custom css)
</head>
<body>
@RenderBody()
</body>
</html>
Sonra çocuk şablonu atlamak ..
@section HeaderContent {
<script>alert("hi");</script>
}
Benim sorunum, normal sayfalardan temel şablona özel başlık kodu ekleyemem.
Aşağıdaki bölümler, düzen sayfası ~/Views/Shared/OneColLayer.cshtml": "HeaderContent
için tanımlanmış, ancak oluşturulmamıştır.
Görünüm sayfasında temel şablona bir işaretçi eklemem gerekir mi? içeriğin artık oneCol şablonunda baz şablon yerleştirilir alır
@{
ViewBag.Title = "Home";
Layout = "~/Views/Shared/OneColLayer.cshtml";
}
@section HeaderContent {
<h1>Left Content</h1>
}
<div>my view content</div>
@{
Layout = "~/Views/Shared/BaseTemplate.cshtml";
}
Benim yeni baz şablon
<head>
<link rel="stylesheet" type="text/css" href="@Url.Content("~/content/layout.css")" />
<link rel="stylesheet" type="text/css" href="@Url.Content("~/content/global.css")" />
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")"></script>
<script type="text/javascript" src="@Url.Content("~/js/fadeInFadeOut.js")"></script>
<title>@ViewBag.Title</title>
@RenderSection("HeaderContent", false)
</head>
<body>
@RenderBody()
</body>
benim yeni çocuk şablon
@{
Layout = "~/Views/Shared/BaseTemplate.cshtml";
}
@RenderSection("HeaderContent", false)
@RenderBody()
benim bakış .
sonuç ...
<div id="Content">
<h1>Left Content</h1>
</div>
olduğu gibi> MiddleLayout.cshtml kullanır. Ancak, görünümümdeki içerik, temel şablon değil, şablonda görüntülenir. –
@JamesAndrewSmith, düzenlemelerinize göre orta şablonunuzda gösterilmektedir, çünkü oluşturduğunuz bir bölümün içinde ortadaki şablona '@ RenderSection 'koymadığınız için. Seninkilerin nasıl görünmesi gerektiğini size tam olarak göstereceğim. –
Benim için iyi çalıştı – Jacques