让说我有以下类:净 - DataAnnotations - 验证2依赖的DateTime
public class Post
{
public Date BeginDate { get; set; }
[Validate2Date(BeginDate, EndDate, ErrorMessage = "End date have to occurs after Begin Date")]
public Date EndDate { get; set; }
}
public class Validate2Dates : ValidationAttribute
{
public Validate2Dates(DateTime a, DateTime b)
{ ... }
public override bool IsValid(object value)
{
// Compare date and return false if b < a
}
}
我的问题是如何利用我的自定义属性Validate2Dates因为我不能做到这一点:
[Validate2Date(BeginDate, EndDate, ErrorMessage = "End date have to occurs before Begin Date")]
我得到了以下错误:
An object reference is required for the non-static field, method, or property '...Post.BeginDate.get' C:...\Post.cs
完全不同意。你不能使用上面写的验证属性,这是正确的。然而,他试图解决的问题是使用验证属性完美解决的。我认为,您认为将验证逻辑本身放入可重用组件中是有意义的,然后您可以在验证属性中利用该组件,并将其插入其余数据注释和模型绑定中机械。 – nerraga 2010-12-23 16:26:09