使用DataAnnotations根据列表框选择以不同方式验证文本框

时间:2013-08-06 18:40:04

标签: asp.net-mvc data-annotations

我有一个自定义验证属性,用于检查以确保过去的生日至少为18年。如果单独的下拉列表选择了特定的状态,我现在需要将其更改为过去的19年。

是否可以动态更改自定义验证?这就是我目前使用的。

public class MyCustomDateAttribute: ValidationAttribute
{
public override bool IsValid(object value)
{
DateTime dt = (DateTime)value;
if (dt>= DateTime.Now.AddYears(-18)){
return false;}
return true;
}}}

以某种方式将-18更改为-19。

我知道这只是服务器端,没关系。

1 个答案:

答案 0 :(得分:1)

在这种情况下,您应该覆盖并实施

protected override ValidationResult IsValid(object value, ValidationContext validationContext)

validationContext参数是解决问题的关键。

完整的解决方案是http://cncrrnt.com/blog/index.php/2011/01/custom-validationattribute-for-comparing-properties