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.
所以我想学习ASP。NET MVC 5和我学的最好是从零开始慢慢构建。我能找到的最好的教程是MVC 3 ASP。建立记录存储的NET教程。因此,我将基本的MVC 5简化到最低限度,以获得返回给我的页面,然后开始遵循这些教程。在获得第7部分的会员资格和授权之前,我只克服了几个小问题。添加了所列的控制器、模型和视图之后,按照使用ASP所需的步骤进行操作。NET Web Application Administration页面,每当我尝试登录登录页面时,我就开始接收上面的错误消息。我已经把我能想到的所有东西都翻了一遍,找到我可能漏掉的地方,但找不到。我甚至去确保我能在原始教程文件中找到的所有引用都在我所拥有的文件中被复制,但这并没有帮助。我终于在Visual Studio 2010中打开了原版,它也出现了同样的错误,所以我不知道问题出在哪里。
The Scripts folder has the following items in it:
Scripts文件夹中包含以下项目:
- _references.js
- _references.js
- bootstrap.js
- bootstrap.js
- bootstrap.min.js
- bootstrap.min.js
- jquery.validate.js
- jquery.validate.js
- jquery.validate.min.js
- jquery.validate.min.js
- jquery.validate.unobtrusive.js
- jquery.validate.unobtrusive.js
- jquery.validate.unobtrusive.min.js
- jquery.validate.unobtrusive.min.js
- jquery.validate.vsdoc.js
- jquery.validate.vsdoc.js
- jquery-2.1.1.intellisense.js
- jquery-2.1.1.intellisense.js
- jquery-2.1.1.js
- jquery-2.1.1.js
- jquery-2.1.1.min.js
- jquery-2.1.1.min.js
- jquery-2.1.1.min.map
- jquery-2.1.1.min.map
- modernizr-2.6.2.js
- modernizr-2.6.2.js
- respond.js
- respond.js
- respond.min.js
- respond.min.js
My BundleConfig.cs file has the following:
我的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;
}
}
}
The Global.asax.cs file contains the following:
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);
}
}
}
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:
登录。cshtml包含以下:
@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:
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
}
}
Lastly, at least for this initial post (other code available upon request), AccountModels.cs contains the following:
最后,至少对于这篇最初的文章(可根据要求获得的其他代码),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; }
}
}
Here are the error entries that show up in the Output display dealing with jquery:
下面是在处理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
1 个解决方案
#1
1
I started receiving the above error message every time I attempted to go to the LogOn page
每次尝试登录页面时,我都开始收到上面的错误消息
If I'm not mistaken your LogOn
page doesn't have jquery
at all...and repetitively calling jquery.validate
plugin....
如果我没弄错的话,你的登录页面根本没有jquery……和重复调用jquery。验证插件....
<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>
....
//then again here:
@Scripts.Render("~/bundles/jqueryval")
So try just this:
那么试试这个:
@Scripts.Render("~/bundles/jquery", "~/bundles/jqueryval")
Hth...
Hth……
#1
1
I started receiving the above error message every time I attempted to go to the LogOn page
每次尝试登录页面时,我都开始收到上面的错误消息
If I'm not mistaken your LogOn
page doesn't have jquery
at all...and repetitively calling jquery.validate
plugin....
如果我没弄错的话,你的登录页面根本没有jquery……和重复调用jquery。验证插件....
<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>
....
//then again here:
@Scripts.Render("~/bundles/jqueryval")
So try just this:
那么试试这个:
@Scripts.Render("~/bundles/jquery", "~/bundles/jqueryval")
Hth...
Hth……