2015-09-09 32 views
1

有沒有一種方法來設置屬性上自定義驗證屬性的執行順序?我有兩個不同的自定義電子郵件屬性,一個用於電子郵件地址,另一個用於確保電子郵件地址在Active Directory中。我希望我的常規電子郵件驗證是第一次,然後是Active Directory驗證。自定義驗證屬性順序C#MVC4

回答

1

一般來說

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

指定順序的唯一方法是描述要創建自己的 ModelValidatorProvider然後可以訂購的屬性。這將 可能會很棘手,因爲您還需要創建 每個接受Order參數的屬性的重載(不知道它們是否已經做了 )。

但在你的情況

您可以創建自定義的電子郵件屬性先檢查有效性的電子郵件地址,然後檢查在Active Directory中存在。並且不需要其他電子郵件驗證屬性。

由於EmailAddressAttribute是密封的,你不能繼承,而不是你可以使用這個類的源代碼來改變和創造自己的屬性: