假设我有一个实体Person(id,dept,EmailAddress,DOB,...),当用EF创建模型时,然后为这个类创建一个元数据类,将验证规则放在服务器端,如:
[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验证。
如何解决此问题?