Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当我必须使用@section脚本时?_Javascript_Jquery_Asp.net Mvc - Fatal编程技术网

Javascript 当我必须使用@section脚本时?

Javascript 当我必须使用@section脚本时?,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,我当前的结构有一个带有页眉、正文和页脚的布局。在主体内部,使用ajax加载视图,以调用返回Json并绘制树视图的动作控制器。当用户单击树状视图时,页脚应加载详细信息。但是不工作,我猜是因为脚本部分没有正确渲染 现在脚本在布局中没有捆绑包或任何东西,在主体上工作正常,因为我使用Jquery和树来加载Json数据 但在局部视图中,会出现错误。我可以编写一个@section scripts区域,并从局部视图的布局中复制所有脚本,但为什么要复制代码 最糟糕的是只给我在生产环境中的问题。。。我的开发环境

我当前的结构有一个带有页眉、正文和页脚的布局。在主体内部,使用ajax加载视图,以调用返回Json并绘制树视图的动作控制器。当用户单击树状视图时,页脚应加载详细信息。但是不工作,我猜是因为脚本部分没有正确渲染

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

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

最糟糕的是只给我在生产环境中的问题。。。我的开发环境很好

因此,问题是:

  • 为什么主视图可以看到脚本在布局上定义,而局部视图不能

  • 为什么我的开发环境很好,但产品却不行

  • 我该怎么解决这个问题

编辑:更多测试

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

@{
    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>
}
@{
ViewBag.Title=“树细节”;
}
@视图包。标题
测试页
//你的密码在这里。
$(文档).ready(函数(){
console.log(“对话框前”);
$(“#dialog”).dialog();
console.log(“在对话框之后”);
})
这是用于显示信息的默认对话框。可以使用“x”图标移动、调整和关闭对话框窗口

@节脚本{ }
这似乎是由于无法识别的jquery函数导致的运行时错误。。尝试将对jquery的链接引用从布局标题中的view@section区域移动。

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

是否在布局中也加载了
treeview
脚本?这是通过
@scripts
部分完成的,还是仅通过常规的
标记完成的?根据我的经验,mvc中的节只是一个内容,它将被部分中的内容所取代。但是,您需要小心,因为
js
加载是连续的(当页面引用它们时加载)。。。因此,在最终的HTML中,如果您的
treeview
脚本是在您实际使用它之后呈现的。。。您将得到这个错误。尝试移动@scripts节声明或在主布局中加载脚本。你能发布一些代码吗?@davidespideno我还没有@script部分。我的布局的头部部分只有脚本标记,其中包括jquery.js。Body视图有一个加载树视图的脚本,但是
jstree.js
也在布局中声明。Foot部分有一些jquery.tabs,还有失败的地方。确定更多信息。。。错误何时发生?有货吗?每当你点击某物时?。。。能否粘贴脚本呈现方式的顺序?似乎
对话框
未定义,可能是
jquery.ui
函数?加载页面时,是否已在输出html中声明?@davidesbideno我包含一个视图示例。这里我需要包括script.section,否则对话框不会显示。这将直接渲染到主体中,而不是使用PartialView。您是否可以尝试将@section脚本中的脚本作为常规
移动到布局中?我相信您的@scripts部分是在布局中的@Body之后渲染的。您不希望使用此部分来使用基本脚本,如
jqueryui
,通常此部分用于为当前部分注入行为。例如您的视图是TreeDetails.cshtml,您有一个非常特定的客户端脚本行为,称为
TreeDetails.js
。这是@scripts部分的一个很好的候选者。您的
treeview
脚本是否也已加载到布局中?这是通过
@scripts
部分完成的,还是仅通过常规的
标记完成的?根据我的经验,mvc中的节只是一个内容,它将被部分中的内容所取代。但是,您需要小心,因为
js
加载是连续的(当页面引用它们时加载)。。。因此,在最终的HTML中,如果您的
treeview
脚本是在您实际使用它之后呈现的。。。您将得到这个错误。尝试移动@scripts节声明或在主布局中加载脚本。你能发布一些代码吗?@davidespideno我还没有@script部分。我的布局的头部部分只有脚本标记,其中包括jquery.js。Body视图有一个加载树视图的脚本,但是
jstree.js
也在布局中声明。Foot部分有一些jquery.tabs,还有失败的地方。确定更多信息。。。错误何时发生?有货吗?每当你点击某物时?。。。能否粘贴脚本呈现方式的顺序?似乎
对话框
未定义,可能是
jquery.ui
函数?加载页面时,是否已在输出html中声明?@davidesbideno我包含一个视图示例。这里我需要包括script.section,否则对话框不会显示。这将直接渲染到主体中,而不是使用PartialView。您是否可以尝试将@section脚本中的脚本作为常规
移动到布局中?我相信您的@scripts部分是在布局中的@Body之后渲染的。您不希望使用此部分来使用基本脚本,如
jqueryui
,通常此部分用于为当前部分注入行为。例如您的视图是TreeDetails.cshtml,您有一个非常特定的客户端脚本行为,称为
TreeDetails.js
。Tha