如何 return 在 ASP.NET Core v3 中使用 Identity 描述所有错误

How to return all errors descriptions with Identity in ASP.NET Core v3

我正在学习 login/register 在 asp.net 核心中使用身份,我正在尝试在寄存器中添加错误,这是我的代码

if (ModelState.IsValid)
{
    var user = new IdentityUser
                {
                    UserName = model.Username,
                    Email = model.Email,
                };

    var result = await _userManager.CreateAsync(user, model.Password);

    if (result.Succeeded)
    {
        var signInresult = await _signInManager.PasswordSignInAsync(model.Username, model.Password, false, false);

        if (signInresult.Succeeded)
        {
            return RedirectToAction("Index");
        }
    }
    else
    {
        List<IdentityError> errorList = result.Errors.ToList();
        string errors = "";

        foreach (var error in errorList) 
        {
            errors = errors + error.Description.ToString();
        }

        return Content(errors);
    }

    return Redirect("Index");
}

这里的问题是 errorList 中的错误是一个一个返回的,而不是像我得到 "username is taken" 或 "password must contain a letter" 那样全部返回。但不是所有的人都一次。我该如何解决?

The problem here is the errors in errorList are returned one by one instead of all of them like,

如果我没理解错的话,你不想用foreach一个一个的得到错误,你可以得到所有的错误如下

else
{
    List<IdentityError> errorList = result.Errors.ToList();
    var errors = string.Join(", ", errorList.Select(e=>e.Description));

    return Content(errors);
}