首页 > 解决方案 > 如何在新用户注册时修复 EntityValidationError?

问题描述

我用个人用户帐户创建了一个新项目并添加了 2 个属性(显示名称和用户名(在代码显示名称/登录用户名中)),而显示名称没有给我任何问题,登录用户名显然是程序的问题。

我尝试将其添加到迁移中,我尝试在没有 LoginUsername 的情况下执行此操作,但这不是我想要的,我尝试在线搜索无济于事。

有错误的部分是

        [HttpPost]
        [AllowAnonymous]
        [ValidateAntiForgeryToken]
        public async Task<ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser { UserName = model.LoginUsername, Email = model.Email, DisplayName = model.DisplayName };
                var result = await UserManager.CreateAsync(user, model.Password);
                if (result.Succeeded)
                {
                    await SignInManager.SignInAsync(user, isPersistent:false, rememberBrowser:false);

                    return RedirectToAction("Index", "Home");
                }
                AddErrors(result);
            }

            return View(model);
        }

我的 RegisterViewModel 包括

    public class RegisterViewModel
    {
        [Required]
        [Display(Name = "Display name")]
        public string DisplayName { get; set; }

        [Required]
        [Display(Name = "Username")]
        public string LoginUsername { get; set; }

        [Required]
        [EmailAddress]
        [Display(Name = "Email")]
        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")]
        [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
        public string ConfirmPassword { get; set; }
    }

我不知道仍然缺少哪些信息,请告诉我这里还有什么需要添加的。

我想要的是注册包含一个实际的用户名,而不仅仅是电子邮件,这也将用于登录。相反,我收到了错误消息。

帮助将不胜感激。:)

已解决:我没有使用 IdentityFramework 提供的标准用户名,应用程序无法用数据填充两个用户名道具,但由于它们都是必需的,因此无法保存帐户。所以我不小心做了一个不必要的第二个属性。

标签: asp.net-coreasp.net-identity

解决方案


推荐阅读