Aquí está la línea de código
result = await userManager.AddToRoleAsync(user, model.Where(x => x.IsSelected)
.Select(y => y.RoleName));
1
AddToRoleAsync espera una cadena, no una secuencia de cadenas. Agregue Single() o First() o algo similar a su expresión Linq.
-heijp06
27 de marzo de 2021 a las 7:19
------------------------------------
Intenta usar FirstOrDefault para obtenersolo un valor de la colección
Ejemplo:
result = await userManager.AddToRoleAsync(user, model.Select(y => y.RoleName)
.FirstOrDefault(x => x.IsSelected)??"");
Respondido
27 de marzo de 2021 a las 7:21 am
jcHernande2
jcHernande2
301
2
2 insignias de plata
6
6 insignias de bronce
------------------------------------
-------------- ------------------
prueba esto:
var role= model.FirstOrDefault(x => x.IsSelected);
if(role ==null) ... error;
result = await userManager.AddToRoleAsync(user, role.RoleName);
o tal vez
var roleName= model.Where(x => x.IsSelected).Select(i=> new {Name=i.RoleName}).FirstOrDefault();
result = await userManager.AddToRoleAsync(user, roleName.Name);
2
Resuelto gracias.
- saqibhaneef
27/03/2021 a las 14:39
parámetros que aceptan la lista pero estaba pasando una cadena. Coloqué la solución a continuación
- saqibhaneef
27/03/2021 a las 14:41
------------------------------------
Solved by replacing this code
var roleName=model.Where(x => x.IsSelected).Select(y => y.RoleName).ToList();
if(roleName!=null)
{
foreach (var roleN in roleName)
{
result = await userManager.AddToRoleAsync(user, roleN);
}
}