当我必须使用@section脚本?

时间:2016-06-20 22:52:02

标签: javascript jquery asp.net-mvc

enter image description here

我目前的结构有一个标题,正文和页脚的布局。在body中加载一个视图,使用ajax调用一个动作控制器,返回一个Json并绘制一个树视图。当用户单击树视图时,页脚应加载详细信息。但是不起作用,我的猜测是因为脚本部分没有正确呈现。

现在,脚本在布局中没有捆绑或任何东西,并且在主体上工作正常,因为我使用Jquery和Tree来加载Json数据。

但在局部视图中出现错误。我可以编写一个@section scripts区域并从部分视图中的布局中复制所有脚本,但为什么要复制代码?

enter image description here

最糟糕的部分只是在生产环境中给我带来问题......在我的开发环境中工作正常。

enter image description here

所以问题:

  • 为什么主视图可以看到脚本在布局上定义但部分视图不是?

  • 为什么我的开发环境工作正常,但制作没有?

  • 我该怎么做才能解决这个问题?

编辑:更多测试。

这是一个测试视图,这个渲染在Body中。但我需要包含脚本部分,否则对话框不显示,即使布局也有脚本。

@{
    ViewBag.Title = "TreeDetails";    
}
<html>
<head>
    <title>@ViewBag.Title</title>
</head>
<body>
    <h2>TEST PAGE</h2>

    <script>

        // Your code goes here.
        $(document).ready(function () {
            console.log("before dialog");
            $("#dialog").dialog();
            console.log("after dialog");
        })
    </script>

    <div id="dialog" title="Basic dialog">
        <p>This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p>
    </div>

</body>
</html>

@section scripts {
    <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
    <script src="//code.jquery.com/jquery-1.10.2.js"></script>
    <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
}

1 个答案:

答案 0 :(得分:0)

由于无法识别的jquery函数,它似乎是一个运行时错误。尝试从布局标题中的@section区域移动链接引用到jquery ..