asp.net mvc4 jquery无法正常工作

dav*_*der 20 asp.net-mvc jquery razor

我正在尝试运行一个jquery代码,它放在我的_Layout.cshtml中,如下所示:

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

});
</script>
  @Scripts.Render("~/bundles/jquery")
  @RenderSection("Scripts", required: false) 
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

上面的代码没有被解雇,当我用Chrome Dev检查时,它显示$未定义(我可以看到我的所有jquery,jquery ui文件都已加载)

如果我将此代码放在外部js文件中,它就可以工作

我不介意把我的所有jquery代码都放在外部文件中,但是真的想澄清我做错了什么.

小智 24

您需要在脚本之前引入jquery.

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

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

});
</script>

  @RenderSection("Scripts", required: false) 
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

  • 我糊涂了.我读到的大部分内容是你应该总是将jQuery脚本导入到最后以获得更好的性能,这正是ASP.NET MVC4默认执行的操作.但是我从未成功地以这种方式使用jQuery,我总是需要在文档的开头导入jQuery才能使它工作.有什么我想念的吗? (11认同)

use*_*933 8

安德烈亚斯,我有同样的问题..默认情况下,"_layout.cshtml"在文档的末尾有"@ Scripts.Render("〜/ bundles/jquery")",但它不起作用..我切把它贴在头上然后就可以了.


Dan*_*odi 7

为了让jQuery工作,你的脚本应该会出现 <script src="/Scripts/jquery-2.0.3.js"></script>

在_Layout.cshtml中,就在</body>标记之前,您可以找到类似这样的内容

@Scripts.Render("~/bundles/jquery")
@RenderSection("scripts", required: false)
Run Code Online (Sandbox Code Playgroud)

首先你有jQuery库.然后你有任何脚本.这就是这意味着什么.所以在你的观点中做这样的事情.

@section scripts{
 //your script
}
Run Code Online (Sandbox Code Playgroud)

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