J'essaie de créer un utilisateur à l'aide de claim identity asp.net Je reçois cette erreur lors de la création de l'utilisateur identity.
ApplicationUser user = new ApplicationUser {
EmailConfirmed = true,
UserName = model.myUser.Email,
Email = model.myUser.Email ,
PhoneNumber = model.myUser.PhoneNumber,
PhoneNumberConfirmed = true,
UserImagePath = model.myUser.UserImagePath,
FirstName= model.myUser.FirstName,
LastName = model.myUser.LastName,
DateOfBirth = model.myUser.DateOfBirth,
Culture = model.myUser.Culture,
Role = model.myUser.Role
};
mais quand le code était
var user= new ApplicationUser {
UserName = model.myUser.Email,
Email = model.myUser.Email ,
};
cela a fonctionné parfaitement, donc je veux savoir ce qui ne va pas
Vous avez une déclaration ( si ou while , par exemple), juste avant le code que vous avez posté, sans accolades.
Par exemple:
if (somethingIsTrue)
{
var user= new ApplicationUser {
UserName = model.myUser.Email,
Email = model.myUser.Email ,
};
}
est correct, mais le code ci-dessous:
if (somethingIsTrue)
var user = new ApplicationUser {
UserName = model.myUser.Email,
Email = model.myUser.Email ,
};
se traduira par CS1023: L'instruction incorporée ne peut pas être une déclaration ou une instruction étiquetée.
Selon @codefrenzy, la raison en est que la nouvelle variable déclarée sera immédiatement hors de portée, sauf si elle est incluse dans une instruction de bloc, d'où elle peut être consultée.
La compilation passera dans les cas suivants cependant.
Si vous initialisez seulement une nouvelle instance d'un type, sans déclarer une nouvelle variable:
if (somethingIsTrue)
new ApplicationUser {
UserName = model.myUser.Email,
Email = model.myUser.Email ,
};
ou si vous affectez une valeur à une variable existante:
ApplicationUser user;
if (somethingIsTrue)
user = new ApplicationUser {
UserName = model.myUser.Email,
Email = model.myUser.Email ,
};
Je viens d'avoir cette erreur, et le correctif consistait à ajouter une accolade à si immédiatement avant mon code, puis à le supprimer. Visual Studio facepalm OTD.