2015-09-09 89 views
1

有没有一种方法来设置属性上自定义验证属性的执行顺序?我有两个不同的自定义电子邮件属性,一个用于电子邮件地址,另一个用于确保电子邮件地址在Active Directory中。我希望我的常规电子邮件验证是第一次,然后是Active Directory验证。自定义验证属性顺序C#MVC4

回答

1

一般来说

正如How can I specify the order of DataAnnotation ValidationAttribute's?

指定顺序的唯一方法是描述要创建自己的 ModelValidatorProvider然后可以订购的属性。这将 可能会很棘手,因为您还需要创建 每个接受Order参数的属性的重载(不知道它们是否已经做了 )。

但在你的情况

您可以创建自定义的电子邮件属性先检查有效性的电子邮件地址,然后检查在Active Directory中存在。并且不需要其他电子邮件验证属性。

由于EmailAddressAttribute是密封的,你不能继承,而不是你可以使用这个类的源代码来改变和创造自己的属性: