20

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

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

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

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

如果我将此代码放在外部 js 文件中,它会起作用

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

4

3 回答 3

25

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

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

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

});
</script>

  @RenderSection("Scripts", required: false) 
</body>
</html>
于 2012-08-29T08:41:56.560 回答
9

安德烈亚斯,我有同样的问题..默认情况下,“_layout.cshtml”在文档末尾有“@Scripts.Render("~/bundles/jquery")”,但它不起作用..我删掉了并将其粘贴到头部,现在它正在工作。

于 2012-12-08T19:57:54.390 回答
7

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

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

@Scripts.Render("~/bundles/jquery")
@RenderSection("scripts", required: false)

首先你有 jQuery 库。然后你有任何脚本。这就是这个意思。所以在你看来,做这样的事情。

@section scripts{
 //your script
}

这将确保所有脚本都在 jQuery 参考之下。

于 2013-12-29T16:03:49.263 回答