我想验证在客户端的ASP.NET MVC项目中输入的电子邮件地址。然后我想以加密形式将这些文件保存到数据库中。
我尝试使用
[EmailAddress(ErrorMessage = "Invalid Email Address")]
由于在将数据存储到构造函数的数据库中之前对此数据进行了加密,因此问题变得复杂:
Email = Encrypt(email);
现在我有一个问题,大概是因为数据库中加密的电子邮件地址不再有效。
我尝试验证解密版本:
[EmailAddress(ErrorMessage = "Invalid Email Address")]
public string DecryptedEmail
{
get
{
return Decrypt(Email);
}
}
我在视图屏幕上更改了它:
@Html.EditorFor(model => model.Email, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.DecryptedEmail, "", new { @class = "text-danger" })
执行db.SaveChanges()时会导致异常:
{"Validation failed for one or more entities. See 'EntityValidationErrors' property for more details."}
检查EntityValidationErrors,我可以看到我的错误消息:
Invalid Email Address
有没有办法让这个方法完全适用于输入?