Я использую ASP.NET MVC 3
с Razor view engine
.
У меня есть вид макета с именем _Root.cshtml
. Разметка HTML выглядит следующим образом:
<body>
<div id="hd"></div>
@RenderBody()
<div id="ft"></div>
@RenderSection("JavaScriptBodySection", false)
</body>
@RenderBody()
есть, потому что макет отличается в зависимости от того, в каком виде вы находитесь. JavaScriptBodySection
- это то место, где я хочу, чтобы весь мой JavaScript-код использовался представлением (внедренным представлением).
У меня есть другой макет, использующий этот макет _Root, который называется _Lr.cshtml
. Разметка HTML выглядит следующим образом:
<div id="bd">
<!-- Layout code here -->
@RenderBody()
</div>
Затем, наконец, мое представление Index использует макет _Lr, и разметка выглядит следующим образом:
@{
Layout = "~/Views/Shared/_Lr.cshtml";
}
<div class="main-content">
<!-- Some stuff here -->
</div>
@section JavaScriptBodySection
{
<script type="text/javascript"></script>
}
Жалуется, что в _Lr нет JavaScriptBodySection. Я не хочу этого здесь, потому что тогда мой JavaScript находится ниже моего div с id bd, я хочу это прямо перед закрывающим тегом body (в _Root). Как мне это сделать?