Brad Willson撰写了一篇关于如何使用DataAnnotations的精彩文章。 http://bradwilson.typepad.com/blog/2009/04/dataannotations-and-aspnet-mvc.html我想要做的是扩展我可以使用的可用属性。类似[PastDate(您必须输入过去的日期)]或[InvoiceNumber(所有发票以INV开头,以002结尾)]。我知道我可以使用Regular表达式属性来完成此任务。但是,具有更多描述性属性将是更清洁的解决方案。
答案 0 :(得分:1)
您需要创建一个继承自System.ComponentModel.DataAnnotations.ValidationAttribute
的类,然后使用该属性:
public class yourModel {
[CustomValidation(typeof(yourClass), "yourMethod")]
public int yourProperty { get; set; }
}
没试过但它应该有用。
答案 1 :(得分:0)
我的项目中有一些 - 有些仍然使用正则表达式,但至少这样它们只在一个地方:
public class TelephoneAttribute : RegularExpressionAttribute
{
public TelephoneAttribute()
: base(@"^\(?(\d{3}\)?)((-| )?\d{3})(-?\d{4})$") { }
}
更像你的例子:
public class MinimumDateAttribute : RangeAttribute
{
public MinimumDateAttribute(string MinimumDate)
: base(typeof(DateTime), MinimumDate, DateTime.MaxValue.ToShortDateString()) { }
}