Asp.net mvc ';。。。数据类型';不包含';电子邮件';
我使用的是Identity,IdentityUsers属性如下所示: 问题是我在AspNetUsers表中有“Email”和“PasswordHash”,但是出现了错误Asp.net mvc ';。。。数据类型';不包含';电子邮件';,asp.net-mvc,Asp.net Mvc,我使用的是Identity,IdentityUsers属性如下所示: 问题是我在AspNetUsers表中有“Email”和“PasswordHash”,但是出现了错误“System.ComponentModel.DataAnnotations.DataType”不包含“Email”和“PasswordHash”的定义。 如果我用“Datatype.Email”代替“Datatype.EmailAddress”,用“Datatype.PasswordHash”代替“DataTtype.Passw
“System.ComponentModel.DataAnnotations.DataType”不包含“Email”和“PasswordHash”的定义。
如果我用“Datatype.Email”代替“Datatype.EmailAddress”,用“Datatype.PasswordHash”代替“DataTtype.Password”
错误是准确地告诉您需要什么。数据类型是只允许特定值的枚举。在MVC世界中,这些反过来用于验证,以确保您在字段中有一个有效的电子邮件地址,不管它被调用什么
[DataType(DataType.Email)] // Not Valid
[DataType(DataType.EmailAddress)] // Valid
[DataType(DataType.PasswordHash)] // Not Valid
[DataType(DataType.Password)] // Valid
有关有效值的完整列表,请参阅Intellisense或此URL:
好的!但是IdentityUser和DataType属性之间有什么区别呢?我正在使用Identity创建一个帐户,但您是说我应该使用这些属性(而不是IdentityUser属性)。这些属性用于您的ViewModel的UI验证,而IdentityUser是保存到DB的DataModel对象。IdentityUser.Email是数据库中的属性/DbField,而DataType.Email是在UI中验证该字段的方式。相同和不同的名称。我不懂逻辑。好吧,答案是可以接受的。
[DataType(DataType.Email)] // Not Valid
[DataType(DataType.EmailAddress)] // Valid
[DataType(DataType.PasswordHash)] // Not Valid
[DataType(DataType.Password)] // Valid