掩码电子邮件的ASP.NET MVC ModelState验证

时间:2016-08-08 15:56:42

标签: c# asp.net asp.net-mvc email

我的这个模型有一个电子邮件属性,如下所示:

[Required]
[EmailAddress]
[Display(Name = "Email")]
public string Email { get; set; }

然后我想在示例点com中将其显示为myemail。所以在我将模型传递给视图之前,我格式化了电子邮件。

我的问题是,在一些更改后它被回发后,ModelState.IsValid现在将失败,因为它不是一个正确的电子邮件格式。即使我在调用ModelState.IsValid之前将电子邮件重新格式化回myemail@example.com,它仍然会失败。

我将如何做到这一点?

我有两个选项,首先,删除属性EmailAddress,以便将其视为字符串。其次,使用此ModelState.Remove(“Email”)。第二个将删除我认为必需的验证。

感谢任何建议。

1 个答案:

答案 0 :(得分:1)

  

所以在我将模型传递给视图之前,我格式化了电子邮件。

在这种情况下,请不要直接格式化Email属性,而是在模型中使用另一个属性(非必需/可选)说public string FormattedEmail { get; set; }并使用该属性来保存格式化的电子邮件和在你的视图中使用相同的内容。