Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.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
asp.net mvc4 jquery不工作_Jquery_Asp.net Mvc_Razor - Fatal编程技术网

asp.net mvc4 jquery不工作

asp.net mvc4 jquery不工作,jquery,asp.net-mvc,razor,Jquery,Asp.net Mvc,Razor,我正在尝试运行一个jquery代码,该代码放在我的\u Layout.cshtml中,如下所示: ............... <script type='text/javascript'> $(document).ready(function () { alert('Test'); }); </script> @Scripts.Render("~/bundles/jquery") @RenderSection("Scripts", required:

我正在尝试运行一个jquery代码,该代码放在我的\u Layout.cshtml中,如下所示:

...............
<script type='text/javascript'>
$(document).ready(function () {
   alert('Test');

});
</script>
  @Scripts.Render("~/bundles/jquery")
  @RenderSection("Scripts", required: false) 
</body>
</html>
。。。。。。。。。。。。。。。
$(文档).ready(函数(){
警报(“测试”);
});
@Scripts.Render(“~/bundles/jquery”)
@RenderSection(“脚本”,必需:false)
上面的代码没有被触发,当我使用Chrome Dev检查时,它显示$未定义(我可以看到我的所有jquery、jquery ui文件都已加载)

如果我把这段代码放在一个外部js文件中,它就起作用了


我不介意将所有jquery代码放在外部文件中,但我真的想澄清我哪里做错了。

您需要在脚本之前介绍jquery

@Scripts.Render("~/bundles/jquery")

<script type='text/javascript'>
$(document).ready(function () {
   alert('Test');

});
</script>

  @RenderSection("Scripts", required: false) 
</body>
</html>
@Scripts.Render(“~/bundles/jquery”)
$(文档).ready(函数(){
警报(“测试”);
});
@RenderSection(“脚本”,必需:false)

安德烈亚斯,我也有同样的问题。。默认情况下,“\u layout.cshtml”在文档末尾有“@Scripts.Render(“~/bundles/jquery”)”,但它不起作用。。我将它剪切并粘贴到头部,现在它开始工作了。

为了让jQuery工作,您的脚本应该在
之后

在_Layout.cshtml中,就在
标记之前,您可以找到如下内容

@Scripts.Render("~/bundles/jquery")
@RenderSection("scripts", required: false)
首先是jQuery库。那你就有脚本了。这就是它的意思。所以在你看来,做些这样的事情

@section scripts{
 //your script
}

这将确保所有脚本都在jQuery引用下。

在加载jQuery库之前,您需要jQuery函数。理想情况下,您应该在布局的标题部分呈现脚本,以便任何页面上的任何jQuery都能正常工作。理想情况下,所有JavaScript都应该进入其单独的文件,然后加载很好,因为您的自定义脚本设置为在jquery之后立即在布局中呈现。谢谢,它起作用了。我曾经把我所有的jquery库放在标题部分,但是根据我最近的研究,把它们放在结束体标记之前是一个很好的做法,我很困惑。我读到的大部分内容是,为了获得更好的性能,您应该始终将jQuery脚本导入放在末尾,这正是ASP.NET MVC4在默认情况下所做的。但我从未成功地以这种方式使用jQuery,我总是需要在文档开始时导入jQuery,以便它工作。有什么是我遗漏的吗?@AndreasLarsen:是的(你遗漏了什么),微软向管理层推销自己,而不是向程序员推销,因此当程序员适应子类实现时,问题就被认为已经解决了。我忘了在我的.cshtml视图中用@section scripts{}包装jQuery,导致“jQuery未定义”错误。这是一个简单的修复混乱的错误。谢谢