假设我有一个实体 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 验证。
如何解决这个问题?