如何在新用户注册时修复EntityValidationError?

时间:2019-05-29 09:56:59

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

我用单独的用户帐户创建了一个新项目,并添加了2个属性(显示名和用户名(代码为DisplayName / LoginUsername)),而DisplayName并没有给我带来任何问题,但LoginUsername显然是该程序的问题。

我尝试将其添加到迁移中,尝试在没有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提供的标准用户名,并且该应用程序无法用数据填充两个用户名道具,但是由于这两个要求,因此无法保存该帐户。因此,我无意中做了不必要的第二项财产。

0 个答案:

没有答案