Я не могу найти способ сделать @section и @RenderSection() работать с несколькими макетами уровней. В моем проекте я определить иерархию макетов:ASP.NET MVC 3, разделы и несколько уровней макета
~/Views/Shared/_Layout.cshtml:
<!DOCTYPE html>
<html>
<head>
<meta ... />
<meta ... />
<link href="..." rel="stylesheet" type="text/css" />
<link href="..." rel="stylesheet" type="text/css" />
@RenderSection("Stylesheet", false)
</head>
<body>
<!-- lots of markup -->
@RenderBody()
<!-- more markup -->
<script src="..." type="text/javascript" />
<script src="..." type="text/javascript" />
@RenderSection("JavaScript", false)
</body>
</html>
~/Просмотров/Shared/_BaseLayout.cshtml (нет определения разделов JavaScript или STYLESHEET):
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
<!-- lots of markup -->
@RenderBody()
~/Views/Shared/_CreateEditLayout.cshtml (опять-таки, нет определений JavaScript или стилей):
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
<!-- lots of markup -->
@RenderBody()
~ Просмотров/Профиль/Edit.cshtml:
@model ...
@{
Layout = "~/Views/Shared/_CreateEditLayout.cshtml";
}
@section JavaScript {
<script type="text/javascript">
jQuery(document).ready(function ($) {
// lots of funny JS
});
</script>
}
Моя проблема заключается в том, что достаточно просто определить @section JavaScript { }
(не нужно писать разметку или JavaScript внутри раздела) для моей Edit.cshtml
остановки было вынесено , Ошибка следующая: Определены следующие разделы, но не были отображены для страницы макета «~/Views/Shared/_CreateEditLayout.cshtml»: «JavaScript».
Любые идеи, что происходит не так? Заранее спасибо.
Спасибо, этот текст был действительно пригодится! –