Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.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
C# 在布局中的脚本之前加载MVC渲染节_C#_Jquery_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

C# 在布局中的脚本之前加载MVC渲染节

C# 在布局中的脚本之前加载MVC渲染节,c#,jquery,asp.net-mvc,asp.net-mvc-4,C#,Jquery,Asp.net Mvc,Asp.net Mvc 4,我的javascript文件的加载顺序似乎有一些问题。在my_Layout.cshtml中,我引用JQuery,然后创建脚本部分 <script src="~/Scripts/jquery-1.10.2.min.js"></script> <script src="~/Scripts/bootstrap.min.js"></script> <script src="http://ajax.aspnetcdn.com/ajax/knockout

我的javascript文件的加载顺序似乎有一些问题。在my_Layout.cshtml中,我引用JQuery,然后创建脚本部分

<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/bootstrap.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/knockout/knockout-3.1.0.js"></script>
@RenderSection("Script", false)
但是,当页面加载时,我会出现以下错误:

Uncaught ReferenceError: $ is not defined
我的理解是相当有限的,但是,我认为它在加载单个视图之前已经加载了jQuery库。任何帮助都将不胜感激。

因为您对“myScript.js”的引用不在脚本部分,它们将在页面中呈现,只要它们与您的视图内联。如果它们位于视图的顶部,则它们将在您调用RenderBody()的点在布局中渲染。如果在布局的底部加载脚本,那么jQuery和所有其他脚本将不会在加载myScripts.js文件时加载,因此“$”将未定义

尝试将myScripts.js引用移动到脚本部分中

@section Script {
    <script src="http://d3js.org/d3.v3.min.js"></script>
    <script src="~/Scripts/myScripts.js"></script>
    <script>

        var options = {
            lineGraphData: @Html.Raw(Model.LineGraphJson),
        }

        var viewModel = init(options);
        ko.applyBindings(viewModel);

    </script>
}
@节脚本{
变量选项={
lineGraphData:@Html.Raw(Model.LineGraphJson),
}
var viewModel=init(选项);
应用绑定(视图模型);
}
由于您对“myScript.js”的引用不在脚本部分,因此它们将在页面中呈现,只要它们与您的视图内联。如果它们位于视图的顶部,则它们将在您调用RenderBody()的点在布局中渲染。如果在布局的底部加载脚本,那么jQuery和所有其他脚本将不会在加载myScripts.js文件时加载,因此“$”将未定义

尝试将myScripts.js引用移动到脚本部分中

@section Script {
    <script src="http://d3js.org/d3.v3.min.js"></script>
    <script src="~/Scripts/myScripts.js"></script>
    <script>

        var options = {
            lineGraphData: @Html.Raw(Model.LineGraphJson),
        }

        var viewModel = init(options);
        ko.applyBindings(viewModel);

    </script>
}
@节脚本{
变量选项={
lineGraphData:@Html.Raw(Model.LineGraphJson),
}
var viewModel=init(选项);
应用绑定(视图模型);
}

每当我看到错误时

Uncaught ReferenceError: $ is not defined
这是因为我试图在没有正确引用jQuery库的地方使用jQuery

我最近没有经常使用jQuery,所以这样想可能是不正确的,但我相信错误告诉您,您没有在myScripts.js文件中引用jQuery库

我个人也会尝试将jQuery引用添加到myScript.js文件中,如下所示

<script src="http://d3js.org/d3.v3.min.js"></script>
<script>
    $('.update-linegraph').on('click', function () {
        UpdateLineGraph();
    });
</script>

$('.update linegraph')。在('单击',函数(){
UpdateLineGraph();
});

每当我看到错误时

Uncaught ReferenceError: $ is not defined
这是因为我试图在没有正确引用jQuery库的地方使用jQuery

我最近没有经常使用jQuery,所以这样想可能是不正确的,但我相信错误告诉您,您没有在myScripts.js文件中引用jQuery库

我个人也会尝试将jQuery引用添加到myScript.js文件中,如下所示

<script src="http://d3js.org/d3.v3.min.js"></script>
<script>
    $('.update-linegraph').on('click', function () {
        UpdateLineGraph();
    });
</script>

$('.update linegraph')。在('单击',函数(){
UpdateLineGraph();
});

我遇到了类似的问题,在
\u Layout.cshtml
中的所有脚本最后都被加载,这导致
$Jquery未定义
错误。所以,我要做的是:

  • 只需在
    \u Layout.cshtml
  • 在那之后,它工作得非常好

  • 我遇到了类似的问题,
    \u Layout.cshtml
    中的所有脚本最后都被加载,这导致了
    $Jquery未定义
    错误。所以,我要做的是:

  • 只需在
    \u Layout.cshtml
  • 在那之后,它工作得非常好

  • 或者,我发现Microsoft使用的MVC模板在布局页面的底部包含jQuery,因此内容页面在加载到页面之前尝试引用jQuery。是的,我使用MVC越多,就越经常注意到这种情况。或者,我发现Microsoft使用的MVC模板在布局页面的底部包含jQuery,因此内容页面在加载到页面之前尝试引用jQuery。是的,我使用MVC越多,就越经常注意到这种情况。小更正:该部分是
    脚本
    ,不
    Script
    节名是您选择的名称。在OP的例子中,他们将其称为“Script”(单数),如第一个代码片段的
    @RenderSection(“Script”,false)
    行中所定义。您是正确的。MVC默认有脚本部分,但OP正在定义自己的部分。次要更正:部分是
    Scripts
    ,而不是
    Script
    。部分名称是您选择的名称。在OP的例子中,他们将其称为“Script”(单数),如第一个代码片段的
    @RenderSection(“Script”,false)
    行中所定义。您是正确的。MVC默认有脚本部分,但OP定义了自己的部分。