JQuery After Body ASP .NET MVC 4

前端之家收集整理的这篇文章主要介绍了JQuery After Body ASP .NET MVC 4前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我刚刚创建了一个ASP.NET MVC 4 WebAPI项目。

在查看默认的_Layout.cshtml时,我看到jquery脚本在body被渲染之后被插入(不在头部)。

<!DOCTYPE html>
<html>
<head>
    <Meta charset="utf-8" />
    <Meta name="viewport" content="width=device-width" />
    <title>@ViewBag.Title</title>
    @Styles.Render("~/Content/themes/base/css","~/Content/css")
    @Scripts.Render("~/bundles/modernizr")
</head>
<body>
    @RenderBody()

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

这会导致错误

$ is not defined

当然,试图写

$(document).ready(function() {...}).

移动

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

进入_Layout.cshtml的头部分会纠正问题,jquery按预期工作。

这是怎么回事?我做错了,还有一个原因是_Layout.cshtml中Script.Render的默认位置?

解决方法

脚本加载和执行阻止页面的呈现。

您可以通过在页面的多个部分添加警报来查看此信息。这就是为什么建议将js文件放在页面的后面。

您还可以通过在页面末尾添加一个页面脚本添加jquery的部分来解决问题。

编辑:这是Scott Guthrie关于剃刀:http://weblogs.asp.net/scottgu/archive/2010/12/30/asp-net-mvc-3-layouts-and-sections-with-razor.aspx部分的文章

猜你在找的jQuery相关文章