Please bear with me on the backstory as it may be pertinent to what the issue is:
So I'm trying to learn ASP.NET MVC 5 and I learn best starting with nothing and slowly building up. The best tutorial I have been able to find that follows this is the MVC 3 ASP.NET tutorial for setting up a record store. So I stripped out everything of a basic MVC 5 to the bare minimum to get a page returned to me and then started following the tutorials. There were only a few hiccups that I was able to overcome until I got to Part 7 for membership and authorization. After adding the controller, model, and views listed and following the steps necessary to make use of the ASP.NET Web Application Administration page, I started receiving the above error message every time I attempted to go to the LogOn page. I've gone over everything I can think of to find where I might be missing a reference, but can't find one. I even went through to make sure all references I could find in the original tutorial files were duplicated in the files that I had and it hasn't helped. I finally opened the original in Visual Studio 2010 and it is giving the same error so I have no idea where the problem might lie.
The Scripts folder has the following items in it:
- _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
My BundleConfig.cs file has the following:
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;
}
}
}
The Global.asax.cs file contains the following:
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);
}
}
}
The Packages.config file contains the following:
<?xml version="1.0" encoding="utf-8"?>
<packages xmlns="urn:packages">
<package id="jQuery" version="2.1.1" targetFramework="net45" xmlns="" />
<package id="Antlr" version="3.4.1.9004" targetFramework="net451" />
<package id="bootstrap" version="3.0.0" targetFramework="net451" />
<package id="EntityFramework" version="6.1.0" targetFramework="net451" />
<package id="jQuery.Validation" version="1.11.1" targetFramework="net451" />
<package id="Microsoft.AspNet.Identity.Core" version="2.0.0" targetFramework="net451" />
<package id="Microsoft.AspNet.Identity.EntityFramework" version="2.0.0" targetFramework="net451" />
<package id="Microsoft.AspNet.Identity.Owin" version="2.0.0" targetFramework="net451" />
<package id="Microsoft.AspNet.Mvc" version="5.1.2" targetFramework="net451" />
<package id="Microsoft.AspNet.Razor" version="3.1.2" targetFramework="net451" />
<package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net451" />
<package id="Microsoft.AspNet.WebPages" version="3.1.2" targetFramework="net451" />
<package id="Microsoft.jQuery.Unobtrusive.Validation" version="3.1.2" targetFramework="net451" />
<package id="Microsoft.Owin" version="2.1.0" targetFramework="net451" />
<package id="Microsoft.Owin.Host.SystemWeb" version="2.1.0" targetFramework="net451" />
<package id="Microsoft.Owin.Security" version="2.1.0" targetFramework="net451" />
<package id="Microsoft.Owin.Security.Cookies" version="2.1.0" targetFramework="net451" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net451" />
<package id="Modernizr" version="2.6.2" targetFramework="net451" />
<package id="Newtonsoft.Json" version="5.0.6" targetFramework="net451" />
<package id="Owin" version="1.0" targetFramework="net451" />
<package id="Respond" version="1.2.0" targetFramework="net451" />
<package id="WebGrease" version="1.5.2" targetFramework="net451" />
</packages>
LogOn.cshtml contains the following:
@using MVCTest.Models
@model MVCTest.Models.LogOnModel
@{
ViewBag.Title = "Log On";
}
<h2>Log On</h2>
<p>
Please enter your user name and password. @Html.ActionLink("Register", "Register") if you don't have an account.
</p>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@Html.ValidationSummary(true, "Login was unsuccessful. Please correct the errors and try again.")
@using (Html.BeginForm()) {
<div>
<fieldset>
<legend>Account Information</legend>
<div class="editor-label">
@Html.LabelFor(m => m.UserName)
</div>
<div class="editor-field">
@Html.TextBoxFor(m => m.UserName)
@Html.ValidationMessageFor(m => m.UserName)
</div>
<div class="editor-label">
@Html.LabelFor(m => m.Password)
</div>
<div class="editor-field">
@Html.PasswordFor(m => m.Password)
@Html.ValidationMessageFor(m => m.Password)
</div>
<div class="editor-label">
@Html.CheckBoxFor(m => m.RememberMe)
@Html.LabelFor(m => m.RememberMe)
</div>
<p>
<input type="submit" value="Log On" />
</p>
</fieldset>
</div>
@section Scripts
{
@Scripts.Render("~/bundles/jquery", "~/bundles/jqueryval")
}
}
AccountController.cs contains the following:
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
}
}
Lastly, at least for this initial post (other code available upon request), AccountModels.cs contains the following:
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; }
}
}
Here are the error entries that show up in the Output display dealing with 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
Syntax Erroris what you should focus on IMO. Using chrome right click and inspect an element, then go to sources tab and open the file and step through the javascript methods.