RenderSection在ASP.NET MVC3中的部分视图中不起作用

时间:2012-12-19 13:16:36

标签: asp.net-mvc asp.net-mvc-3 partial-views

在我的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。可能是什么原因?感谢

1 个答案:

答案 0 :(得分:13)

无法在局部视图中在布局中设置@section。作为一种解决方法,您可以调用一个呈现必要<script>和HTML的操作 - 虽然这不是很优雅。