每次尝试创建新用户或注册时都会出错。 这是来源: 一个或多个实体的验证失败。有关详细信息,请参阅“EntityValidationErrors”属性。
描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.Data.Entity.Validation.DbEntityValidationException:一个或多个实体的验证失败。有关详细信息,请参阅“EntityValidationErrors”属性。
来源错误:
第185行: 第186行: 第187行:var result = await UserManager.CreateAsync(user,model.Password); 第188行:if(result.Succeeded) 第189行:{
源文件:C:\ Users \ koand \ documents \ visual studio 2015 \ Projects \ MvcStore \ MvcStore \ Controllers \ AccountController.cs Line:187
我的代码: public async Task Register(RegisterViewModel model,string returnUrl) {
if (ModelState.IsValid)
{
var user = new ApplicationUser
{
UserName = model.Email,
Email = model.Email
};
var result = await UserManager.CreateAsync(user, model.Password);
if (result.Succeeded)
{
await SignInManager.SignInAsync(user, isPersistent:false, rememberBrowser:false);
// For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771
// Send an email with this link
// string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
// var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
// await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");
return RedirectToAction("Index", "Home");
}
AddErrors(result);
}
// If we got this far, something failed, redisplay form
return View(model);
}
答案 0 :(得分:0)
以下是此类异常的原因
您的模型与数据库架构不同
DataType或约束不正确
标识列集也会导致此类错误
如果您使用代码优先,请确保运行迁移,如果您使用DB优先方法,请更新EDMX。
答案 1 :(得分:0)
我在ASP.NET MVC上遇到了同样的问题,我在查看代码下使用以下代码解决了该问题:
@section Scripts {
@Scripts.Render("/bundles/jqueryval")
}
答案 2 :(得分:0)
通常,当保存到数据库的数据值违反字段验证时,例如,值的长度超过了字段允许的长度,例如将“ longtext”保存到只能接受3个字符的字段时,就会发生这种情况。
答案 3 :(得分:0)
当您的实体验证不正确时,会发生此错误。
您可以使用:
if(ModelState.isvalid){}
出于更多注意。
答案 4 :(得分:0)
您可以在dbcontext构造函数中使用此行来忽略实体验证。
base.Configuration.ValidateOnSaveEnabled = false;