我已经看了一下:'$' is undefined,但它并没有解决我的问题;这就是为什么我打开另一个线程。
这就是我所做的...
我使用 Visual Studio 2012 创建了一个新解决方案并添加了一个空的 ASP.NET MVC 4 项目。我添加了一个控制器类,定义了一个默认的 Index 操作方法,并让 Resharper 为其创建视图。该项目具有以下结构:
root/
Controllers/
SampleController.cs
Models/
Views/
Sample/
Index.cshtml
Shared/
Layout.cshtml
Scripts/
jquery-2.0.1.js
jquery-2-0.1.min.js
jquery-2.0.1-min.map
jQuery 已通过 Nuget 添加;所以我手动将 BundleConfig.cs 文件添加到 App_Start 文件夹并添加代码来定义 jQuery 脚本包(RegisterBundles 将由 global.asax 调用)。
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery")
.Include("~/Scripts/jquery-2.0.*"));
}
我还定义了一个布局页面,其中包含以下内容......
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>@this.ViewBag.Title</title>
</head>
<body>
<div>
@this.RenderBody()
</div>
@this.RenderSection("Scripts", required: false)
</body>
</html>
我的索引视图具有以下内容...
@using System.Web.Optimization
@model dynamic
@{
this.Layout = "~/Views/Shared/Layout.cshtml";
}
@section Scripts
{
@Scripts.Render("~/bundles/jquery")
<script type="text/javascript">
$(document).ready(function() {
});
</script>
}
以下标记呈现到输出流...
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
</head>
<body>
<div>
</div>
<script src="/root/Scripts/jquery-2.0.1.js"></script>
<script src="/root/Scripts/jquery-2.0.1.min.map"></script>
<script type="text/javascript">
$(document).ready(function() {
});
</script>
</body>
</html>
当我调试应用程序时,它会给我错误消息“$”未定义。我没有在本地 IIS 中托管应用程序,而是尝试通过 Visual Studio 的 Web 开发服务器运行它,这给了我另一个提示:语法错误(min.map 文件中的意外标记 ';')。可能是 jQuery 未初始化的原因......但我应该如何解决这个问题?