我使用MVC Foolproof验证(https://foolproof.codeplex.com/)并且我已经意识到它不允许在属性上使用多个目标。例如,我希望拥有一个必须是" GreaterThanOrEqualTo"另外两个属性,但Foolproof属性未设置为多次使用。所以这个:
public class RecordResultViewModel
{
[LessThanOrEqualTo("EndDate", ErrorMessage = "The start date cannot be after the end date.")]
[LessThanOrEqualTo("EnrolmentEndDate", ErrorMessage = "The start date cannot be before the enrolment end date.")]
public DateTime? StartDate { get; set; }
[GreaterThanOrEqualTo("StartDate", ErrorMessage = "The end date cannot be before the start date.")]
[GreaterThanOrEqualTo("EnrolmentStartDate", ErrorMessage = "The end date cannot be before the enrolment start date.")]
public DateTime? EndDate { get; set; }
public DateTime EnrolmentStartDate { get; set; }
public DateTime EnrolmentEndDate { get; set; }
}
我无法想到这一点,而且我注意到Codeplex上的项目自2012年以来一直没有得到维护,所以我真的需要一个支持多个相同属性的替代解决方案还支持所有与Foolproof相同的验证属性。