我将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中)。我该怎么做?
答案 0 :(得分:1)
在_Lr.cshtml
中,您需要重新定义该部分:
<div id="bd">
<!-- Layout code here -->
@RenderBody()
</div>
@section JavaScriptBodySection {
@RenderSection("JavaScriptBodySection", false)
}
这显然假设_Lr.cshtml
派生自Root.cshtml
(嵌套布局)。