DataAnnotations中的SelfValidation?

时间:2010-04-20 22:09:02

标签: asp.net-mvc validation enterprise-library data-annotations

使用Validation Application块,有以下功能:

  1. 创建自定义属性
  2. 在类型
  3. 上创建SelfValidation
  4. 能够从外部配置文件中读取
  5. 我计划使用DataAnnotations来替换Validation应用程序块。 DataAnnotations可以实现上述目标吗?如果是这样,我如何实施它们?

    感谢任何帮助

2 个答案:

答案 0 :(得分:1)

是的,他们是可能的。

创建一个非常简单的自定义属性;

public class IsApplicantOldEnoughAttribute : ValidationAttribute
{
    public override bool IsValid(object value)
    {
        if (value == null) return false;
        DateTime enteredDate;

        try
        {
            enteredDate = (DateTime)value;
        }
        catch
        {
            return false;
        }
        if ((DateTime.Today.Year - enteredDate.Year) >= 14)
            return true;
        else
            return false;
    }
}

从配置文件中读取与从配置文件中读取的任何代码相同。

不确定你的自我验证是什么意思。你可以请我填一下,我会试着举个例子。

答案 1 :(得分:0)

您可以简单地将 IValidatableObject 接口添加到您的类型:

public class MyClass : IValidatableObject {
 public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
 {
   return ...
 }
}

这适用于 ValidationContext 等。