Jef*_*eff 18 asp.net-mvc jquery asp.net-mvc-4
我刚刚创建了一个ASP .NET MVC 4 WebAPI项目.
在查看默认的_Layout.cshtml时,我看到在渲染正文(不在头部)之后插入了jquery脚本.
<!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>
Run Code Online (Sandbox Code Playgroud)
这会导致错误
$ is not defined
Run Code Online (Sandbox Code Playgroud)
当然,试着写
$(document).ready(function() {...}).
Run Code Online (Sandbox Code Playgroud)
移动
@Scripts.Render("~/bundles/jquery")
Run Code Online (Sandbox Code Playgroud)
进入_Layout.cshtml的head部分纠正问题,jquery按预期工作.
这是怎么回事?我做错了什么,并且_Layout.cshtml中的Script.Render的默认位置是有原因的吗?
lin*_*rro 11
脚本加载和执行阻止页面的呈现.
您可以通过在页面的多个部分添加提醒来查看此信息.这就是为什么建议将js文件放在页面后面的原因.
您还可以通过在页面末尾添加jquery的页面后面的页面脚本部分来解决您的问题.
编辑:以下是Scott Guthrie关于剃刀部分的文章:http://weblogs.asp.net/scottgu/archive/2010/12/30/asp-net-mvc-3-layouts-and-sections-with-razor的.aspx
| 归档时间: |
|
| 查看次数: |
12474 次 |
| 最近记录: |