モデルがEFで作成されたときにエンティティPerson(id、dept、EmailAddress、DOB、...)があるとします。次に、このクラスのメタデータクラスを作成して、次のようにサーバー側に検証ルールを配置します。
[CustomValidation(typeof(MyValidator), "DOBValidator")]
public Nullable<DateTime> DOB { get; set; }
[RegularExpression("^([\\w-\\.]+)@((\\[[0–9]{1,3}\\.[0–9]{1,3}\\.[0–9]{1,3}\\.)|(([\\w-]+\\.)+))([a-zA-Z]{2,4" + "}|[0–9]{1,3})(\\]?)$", ErrorMessage = "Invalid email address")]
[StringLength(128)]
public string EmailAddress { get; set; }
検証ルールが設定されている場合、クライアント側から送信されたデータは、保存のためにデータを送信するときに例外なく検証を通過します。
しかし、今はルールの例外が必要です.UIから、データに基づいてエンティティPersonにバインドしてUIからデータを取得するとき、検証を無視したいです。たとえば、Dept=A の場合は EmailAddress 検証をチェックせず、dept=B の場合は DOB 検証をチェックしません。
この問題を解決するにはどうすればよいですか?