Моя проблема в том, что я не могу использовать @RenderSection
из вложенного шаблона, когда @RenderSection
определено в базовом шаблоне.В настоящее время у меня есть вложенный базовый шаблон, который связан с дочерним шаблоном, который затем используется на страницах просмотра.Когда я определяю @RenderSection
в базовом шаблоне и отображаю его на страницах просмотра, он выдает ошибку.
Вот точная проблема.
Я хочу создать RenderSection, чтобы позволить мневставить пользовательские скрипты.Мой базовый шаблон ....
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
@RenderSection("HeaderContent", false) // The region of the header scripts (custom css)
</head>
<body>
@RenderBody()
</body>
</html>
Затем я пропускаю дочерний шаблон, поскольку не хочу вставлять туда какой-либо пользовательский код заголовка и применять его к самой странице ..
@section HeaderContent {
<script>alert("hi");</script>
}
Моя проблема в том, что я не могу добавить собственный код заголовка в базовый шаблон со своих обычных страниц.
Следующие разделы были определены, но не были отображены для страницы макета ~/Views/Shared/OneColLayer.cshtml": "HeaderContent
.
Нужно ли включать указатель на базовый шаблон на странице просмотра?
@{
Layout = "~/Views/Shared/BaseTemplate.cshtml";
}
Мой новый базовый шаблон
<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>
Мой новый дочерний шаблон
@{
Layout = "~/Views/Shared/BaseTemplate.cshtml";
}
@RenderSection("HeaderContent", false)
@RenderBody()
my view
@{
ViewBag.Title = "Home";
Layout = "~/Views/Shared/OneColLayer.cshtml";
}
@section HeaderContent {
<h1>Left Content</h1>
}
<div>my view content</div>
содержимое помещается в шаблон oneCol, теперь базовый шаблон.
results ...
<div id="Content">
<h1>Left Content</h1>
</div>