为什么jquery不能在布局中定义的页面上工作

时间:2013-09-17 21:49:50

标签: c# asp.net-mvc asp.net-mvc-4 razor

我有一个razor布局,它会加载 css jquery等。
当我添加控制器动作视图时,我将布局设置为_Layout.cshtml
但jquery在该页面中不起作用。
所以我必须在每个视图中添加@Scripts.Render("~/bundles/jquery") 为什么导入的jquery不是从_Layout.cshtml继承的?这是正常的吗?

1 个答案:

答案 0 :(得分:8)

这应该在_Layout.cshtml的底部附近:

@Scripts.Render("~/bundles/jquery")
@RenderSection("scripts", required: false)

这应该在您的孩子视图中:

@section scripts {
    @Scripts.Render("~/scripts/jquery.infinitescroll.js") // Or some other script
}

您的子视图中的所有脚本(引用jquery)都需要位于脚本部分,而不是放在页面正文中。这包括任何想要使用jquery的脚本标记。例如,我的一个页面具有以下内容:

@section scripts {
    @Scripts.Render("https://maps.googleapis.com/maps/api/js?key=&sensor=false")
    <script src="~/scripts/google-maps-3-vs-1-0.js"></script>
    <script>
        Stuff here
    </script>
}