在我的ASP.NET MVC3项目中,我有一个由Visual Studio 2010生成的标准_Layout.cshtml
,在关闭我的<body>
标记后,我放置了RenderSection
:
_Layout.cshtml:
</body>
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
@RenderSection("ScriptContent", required: false)
</html>
然后在我的Index.cshtml
视图中我有:
@model MyApp.ViewModels.MyViewModel
@{ Html.RenderPartial("MyPartial", Model); }
如果我将@section ScriptContent
放在Index.cshtml中,它会正确显示。如果我将其放入我的部分视图MyPartial.cshtml
:
@model MyApp.ViewModels.MyViewModel
@section ScriptContent {
<script src="@Url.Content("~/Scripts/Filters.js")" type="text/javascript"></script>
}
在我的页面来源中,我有:
</body>
<script src="/Scripts/jquery-1.5.1.min.js" type="text/javascript"></script>
</html>
表示未执行@section
。可能是什么原因?感谢
答案 0 :(得分:13)
无法在局部视图中在布局中设置@section
。作为一种解决方法,您可以调用一个呈现必要<script>
和HTML的操作 - 虽然这不是很优雅。