自定义数据验证注释 - ASP.NET MVC2 C#

时间:2010-10-19 02:35:29

标签: c# asp.net asp.net-mvc attributes

我有一个部分看起来像这样的viewmodel ......

        [Required]
        public int Year { get; set; }

        [Required]
        [Range(1, 5000000)]
        public int ModelID { get; set; }

        [Required]
        public int ZipCode{ get; set;}

我想添加一个自定义验证器属性,用于检查数据库以确保Zip有效。有点像...

        [Required]
        [IsValidZipcode]
        public int ZipCode{ get; set;}

我无法在网上找到教程 - 我不认为我知道要搜索什么,因为这似乎很常见。

我应该怎么做?

2 个答案:

答案 0 :(得分:4)

只需创建一个继承自ValidationAttribute类的类,然后使用IsValid方法:

public class IsValidZipCode: ValidationAttribute
{
   public override bool IsValid(object value)
   {
      return db.ValidateSomething(value);
   }
}

然后你很高兴:

[IsValidZipCode(ErrorMessage = "Not a valid zip code!")]
public int ZipCode { get; set; }

答案 1 :(得分:3)

您扩展ValidationAttribute,如this article所示。 ValidationAttribute有一个方法IsValid(),你可以覆盖它来表明模型的有效性。