“0x800a1391 – JavaScript运行时错误:’jQuery’未定义”错误

请关注背景故事,因为它可能与问题有关:

因此,我正在尝试学习ASP.NET MVC 5,并且我从没有任何东西开始学习,并慢慢积累起来。 我能够找到的最好的教程是用于设置记录存储的MVC 3 ASP.NET教程。 所以我删除了基本的MVC 5的所有内容,以便将页面返回给我,然后开始学习本教程。 在我获得第7部分的会员资格和授权之前,我只能解决几个小问题。 添加列出的控制器,模型和视图并遵循使用ASP.NET Web应用程序管理页面所需的步骤后,每次尝试转到LogOn页面时,我都会收到上述错误消息。 我已经完成了我能想到的一切,找到了我可能缺少参考的地方,但却找不到一个。 我甚至通过确保我在原始教程文件中找到的所有引用都复制到我拥有的文件中并且没有帮助。 我终于在Visual Studio 2010中打开了原始版本并且它给出了同样的错误,所以我不知道问题可能在哪里。

Scripts文件夹中包含以下项目:

  • _references.js
  • bootstrap.js
  • bootstrap.min.js
  • jquery.validate.js
  • jquery.validate.min.js
  • jquery.validate.unobtrusive.js
  • jquery.validate.unobtrusive.min.js
  • jquery.validate.vsdoc.js
  • jQuery的2.1.1.intellisense.js
  • jQuery的2.1.1.js
  • jQuery的2.1.1.min.js
  • jquery-2.1.1.min.map
  • Modernizr的,2.6.2.js
  • respond.js
  • respond.min.js

我的BundleConfig.cs文件包含以下内容:

using System.Web; using System.Web.Optimization; namespace MVCTest { public class BundleConfig { // For more information on bundling, visit http://go.microsoft.com/fwlink/?LinkId=301862 public static void RegisterBundles(BundleCollection bundles) { bundles.Add(new ScriptBundle("~/bundles/jquery").Include( "~/Scripts/jquery-{version}.js")); bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include( "~/Scripts/jquery.validate*")); // Use the development version of Modernizr to develop with and learn from. Then, when you're // ready for production, use the build tool at http://modernizr.com to pick only the tests you need. bundles.Add(new ScriptBundle("~/bundles/modernizr").Include( "~/Scripts/modernizr-*")); bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include( "~/Scripts/bootstrap.js", "~/Scripts/respond.js")); bundles.Add(new StyleBundle("~/Content/css").Include( "~/Content/bootstrap.css", "~/Content/site.css")); // Set EnableOptimizations to false for debugging. For more information, // visit http://go.microsoft.com/fwlink/?LinkId=301862 BundleTable.EnableOptimizations = true; } } } 

Global.asax.cs文件包含以下内容:

 using System.Web.Mvc; using System.Web.Routing; using System.Web.Optimization; namespace MVCTest { public class MvcApplication : System.Web.HttpApplication { protected void Application_Start() { System.Data.Entity.Database.SetInitializer(new MVCTest.Models.SampleData()); AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); } } } 

Packages.config文件包含以下内容:

                           

LogOn.cshtml包含以下内容:

 @using MVCTest.Models @model MVCTest.Models.LogOnModel @{ ViewBag.Title = "Log On"; } 

Log On

Please enter your user name and password. @Html.ActionLink("Register", "Register") if you don't have an account.

@Html.ValidationSummary(true, "Login was unsuccessful. Please correct the errors and try again.") @using (Html.BeginForm()) {
Account Information
@Html.LabelFor(m => m.UserName)
@Html.TextBoxFor(m => m.UserName) @Html.ValidationMessageFor(m => m.UserName)
@Html.LabelFor(m => m.Password)
@Html.PasswordFor(m => m.Password) @Html.ValidationMessageFor(m => m.Password)
@Html.CheckBoxFor(m => m.RememberMe) @Html.LabelFor(m => m.RememberMe)

@section Scripts { @Scripts.Render("~/bundles/jquery", "~/bundles/jqueryval") } }

AccountController.cs包含以下内容:

 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Routing; using System.Web.Security; using MVCTest.Models; namespace MVCTest.Controllers { public class AccountController : Controller { // // GET: /Account/LogOn public ActionResult LogOn() { return View(); } // // POST: /Account/LogOn [HttpPost] public ActionResult LogOn(LogOnModel model, string returnUrl) { if (ModelState.IsValid) { if (Membership.ValidateUser(model.UserName, model.Password)) { FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe); if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/") && !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\")) { return Redirect(returnUrl); } else { return RedirectToAction("Index", "Home"); } } else { ModelState.AddModelError("", "The user name or password provided is incorrect."); } } // If we got this far, something failed, redisplay form return View(model); } // // GET: /Account/LogOff public ActionResult LogOff() { FormsAuthentication.SignOut(); return RedirectToAction("Index", "Home"); } // // GET: /Account/Register public ActionResult Register() { return View(); } // // POST: /Account/Register [HttpPost] public ActionResult Register(RegisterModel model) { if (ModelState.IsValid) { // Attempt to register the user MembershipCreateStatus createStatus; Membership.CreateUser(model.UserName, model.Password, model.Email, "question", "answer", true, null, out createStatus); if (createStatus == MembershipCreateStatus.Success) { FormsAuthentication.SetAuthCookie(model.UserName, false /* createPersistentCookie */); return RedirectToAction("Index", "Home"); } else { ModelState.AddModelError("", ErrorCodeToString(createStatus)); } } // If we got this far, something failed, redisplay form return View(model); } // // GET: /Account/ChangePassword [Authorize] public ActionResult ChangePassword() { return View(); } // // POST: /Account/ChangePassword [Authorize] [HttpPost] public ActionResult ChangePassword(ChangePasswordModel model) { if (ModelState.IsValid) { // ChangePassword will throw an exception rather // than return false in certain failure scenarios. bool changePasswordSucceeded; try { MembershipUser currentUser = Membership.GetUser(User.Identity.Name, true /* userIsOnline */); changePasswordSucceeded = currentUser.ChangePassword(model.OldPassword, model.NewPassword); } catch (Exception) { changePasswordSucceeded = false; } if (changePasswordSucceeded) { return RedirectToAction("ChangePasswordSuccess"); } else { ModelState.AddModelError("", "The current password is incorrect or the new password is invalid."); } } // If we got this far, something failed, redisplay form return View(model); } // // GET: /Account/ChangePasswordSuccess public ActionResult ChangePasswordSuccess() { return View(); } #region Status Codes private static string ErrorCodeToString(MembershipCreateStatus createStatus) { // See http://go.microsoft.com/fwlink/?LinkID=177550 for // a full list of status codes. switch (createStatus) { case MembershipCreateStatus.DuplicateUserName: return "User name already exists. Please enter a different user name."; case MembershipCreateStatus.DuplicateEmail: return "A user name for that e-mail address already exists. Please enter a different e-mail address."; case MembershipCreateStatus.InvalidPassword: return "The password provided is invalid. Please enter a valid password value."; case MembershipCreateStatus.InvalidEmail: return "The e-mail address provided is invalid. Please check the value and try again."; case MembershipCreateStatus.InvalidAnswer: return "The password retrieval answer provided is invalid. Please check the value and try again."; case MembershipCreateStatus.InvalidQuestion: return "The password retrieval question provided is invalid. Please check the value and try again."; case MembershipCreateStatus.InvalidUserName: return "The user name provided is invalid. Please check the value and try again."; case MembershipCreateStatus.ProviderError: return "The authentication provider returned an error. Please verify your entry and try again. If the problem persists, please contact your system administrator."; case MembershipCreateStatus.UserRejected: return "The user creation request has been canceled. Please verify your entry and try again. If the problem persists, please contact your system administrator."; default: return "An unknown error occurred. Please verify your entry and try again. If the problem persists, please contact your system administrator."; } } #endregion } } 

最后,至少对于这个初始post(其他代码可根据要求提供),AccountModels.cs包含以下内容:

 using System.ComponentModel.DataAnnotations; namespace MVCTest.Models { public class ChangePasswordModel { [Required] [DataType(DataType.Password)] [Display(Name = "Current password")] public string OldPassword { get; set; } [Required] [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)] [DataType(DataType.Password)] [Display(Name = "New password")] public string NewPassword { get; set; } [DataType(DataType.Password)] [Display(Name = "Confirm new password")] [System.ComponentModel.DataAnnotations.Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match.")] //[System.Web.Mvc.Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match.")] public string ConfirmPassword { get; set; } } public class LogOnModel { [Required] [Display(Name = "User name")] public string UserName { get; set; } [Required] [DataType(DataType.Password)] [Display(Name = "Password")] public string Password { get; set; } [Display(Name = "Remember me?")] public bool RememberMe { get; set; } } public class RegisterModel { [Required] [Display(Name = "User name")] public string UserName { get; set; } [Required] [DataType(DataType.EmailAddress)] [Display(Name = "Email address")] public string Email { get; set; } [Required] [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)] [DataType(DataType.Password)] [Display(Name = "Password")] public string Password { get; set; } [DataType(DataType.Password)] [Display(Name = "Confirm password")] [System.ComponentModel.DataAnnotations.Compare("Password", ErrorMessage = "The password and confirmation password do not match.")] //[System.Web.Mvc.Compare("Password", ErrorMessage = "The password and confirmation password do not match.")] public string ConfirmPassword { get; set; } } } 

以下是在输出显示中显示的与jquery有关的错误条目:

 Exception was thrown at line 1, column 22145 in http://localhost:53722/bundles/jquery?v=vEaljJV1h4KYaqn2s6dj9T-6yVrUkuN-z--_W-PVafM1 0x800a139e - JavaScript runtime error: SyntaxError Exception was thrown at line 1, column 22372 in http://localhost:53722/bundles/jquery?v=vEaljJV1h4KYaqn2s6dj9T-6yVrUkuN-z--_W-PVafM1 0x800a139e - JavaScript runtime error: SyntaxError Exception was thrown at line 37, column 60610 in http://localhost:55810/ba6c272749e94650b56fa773ecca73a3/browserLink 0x800a139e - JavaScript runtime error: SyntaxError Exception was thrown at line 37, column 60451 in http://localhost:55810/ba6c272749e94650b56fa773ecca73a3/browserLink 0x800a139e - JavaScript runtime error: SyntaxError Exception was thrown at line 37, column 60451 in http://localhost:55810/ba6c272749e94650b56fa773ecca73a3/browserLink 0x800a139e - JavaScript runtime error: SyntaxError Exception was thrown at line 37, column 60451 in http://localhost:55810/ba6c272749e94650b56fa773ecca73a3/browserLink 0x800a139e - JavaScript runtime error: SyntaxError Exception was thrown at line 37, column 60451 in http://localhost:55810/ba6c272749e94650b56fa773ecca73a3/browserLink 0x800a139e - JavaScript runtime error: SyntaxError Unhandled exception at line 16, column 54 in http://localhost:53722/Scripts/jquery.validate.min.js 0x800a1391 - JavaScript runtime error: 'jQuery' is undefined Unhandled exception at line 19, column 2 in http://localhost:53722/Scripts/jquery.validate.unobtrusive.min.js 0x800a1391 - JavaScript runtime error: 'jQuery' is undefined Exception was thrown at line 1, column 22145 in http://localhost:53722/bundles/jquery?v=vEaljJV1h4KYaqn2s6dj9T-6yVrUkuN-z--_W-PVafM1 0x800a139e - JavaScript runtime error: SyntaxError Exception was thrown at line 1, column 22372 in http://localhost:53722/bundles/jquery?v=vEaljJV1h4KYaqn2s6dj9T-6yVrUkuN-z--_W-PVafM1 0x800a139e - JavaScript runtime error: SyntaxError Exception was thrown at line 37, column 60610 in http://localhost:55810/ba6c272749e94650b56fa773ecca73a3/browserLink 0x800a139e - JavaScript runtime error: SyntaxError Exception was thrown at line 1, column 14200 in http://localhost:53722/bundles/jquery?v=vEaljJV1h4KYaqn2s6dj9T-6yVrUkuN-z--_W-PVafM1 0x800a139e - JavaScript runtime error: SyntaxError Exception was thrown at line 37, column 60451 in http://localhost:55810/ba6c272749e94650b56fa773ecca73a3/browserLink 0x800a139e - JavaScript runtime error: SyntaxError Exception was thrown at line 37, column 60451 in http://localhost:55810/ba6c272749e94650b56fa773ecca73a3/browserLink 0x800a139e - JavaScript runtime error: SyntaxError Exception was thrown at line 37, column 60451 in http://localhost:55810/ba6c272749e94650b56fa773ecca73a3/browserLink 0x800a139e - JavaScript runtime error: SyntaxError Exception was thrown at line 37, column 60451 in http://localhost:55810/ba6c272749e94650b56fa773ecca73a3/browserLink 0x800a139e - JavaScript runtime error: SyntaxError Exception was thrown at line 37, column 60451 in http://localhost:55810/ba6c272749e94650b56fa773ecca73a3/browserLink 0x800a139e - JavaScript runtime error: SyntaxError Exception was thrown at line 37, column 60451 in http://localhost:55810/ba6c272749e94650b56fa773ecca73a3/browserLink 0x800a139e - JavaScript runtime error: SyntaxError Exception was thrown at line 37, column 60451 in http://localhost:55810/ba6c272749e94650b56fa773ecca73a3/browserLink 0x800a139e - JavaScript runtime error: SyntaxError Exception was thrown at line 37, column 60451 in http://localhost:55810/ba6c272749e94650b56fa773ecca73a3/browserLink 0x800a139e - JavaScript runtime error: SyntaxError Exception was thrown at line 37, column 60451 in http://localhost:55810/ba6c272749e94650b56fa773ecca73a3/browserLink 0x800a139e - JavaScript runtime error: SyntaxError Exception was thrown at line 37, column 60451 in http://localhost:55810/ba6c272749e94650b56fa773ecca73a3/browserLink 0x800a139e - JavaScript runtime error: SyntaxError Exception was thrown at line 37, column 60451 in http://localhost:55810/ba6c272749e94650b56fa773ecca73a3/browserLink 0x800a139e - JavaScript runtime error: SyntaxError Exception was thrown at line 37, column 60451 in http://localhost:55810/ba6c272749e94650b56fa773ecca73a3/browserLink 0x800a139e - JavaScript runtime error: SyntaxError Exception was thrown at line 37, column 60451 in http://localhost:55810/ba6c272749e94650b56fa773ecca73a3/browserLink 0x800a139e - JavaScript runtime error: SyntaxError Exception was thrown at line 37, column 60451 in http://localhost:55810/ba6c272749e94650b56fa773ecca73a3/browserLink 0x800a139e - JavaScript runtime error: SyntaxError Exception was thrown at line 37, column 60451 in http://localhost:55810/ba6c272749e94650b56fa773ecca73a3/browserLink 0x800a139e - JavaScript runtime error: SyntaxError Exception was thrown at line 37, column 60451 in http://localhost:55810/ba6c272749e94650b56fa773ecca73a3/browserLink 0x800a139e - JavaScript runtime error: SyntaxError Exception was thrown at line 37, column 60451 in http://localhost:55810/ba6c272749e94650b56fa773ecca73a3/browserLink 0x800a139e - JavaScript runtime error: SyntaxError Exception was thrown at line 37, column 60451 in http://localhost:55810/ba6c272749e94650b56fa773ecca73a3/browserLink 0x800a139e - JavaScript runtime error: SyntaxError Exception was thrown at line 37, column 60451 in http://localhost:55810/ba6c272749e94650b56fa773ecca73a3/browserLink 0x800a139e - JavaScript runtime error: SyntaxError Exception was thrown at line 37, column 60451 in http://localhost:55810/ba6c272749e94650b56fa773ecca73a3/browserLink 0x800a139e - JavaScript runtime error: SyntaxError 

每次尝试进入LogOn页面时,我都会收到上述错误消息

如果我没有弄错你的LogOn页面根本没有jquery …并且重复调用jquery.validate插件….

   .... //then again here: @Scripts.Render("~/bundles/jqueryval") 

所以试试吧:

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

心连心…