这里有一个类似的问题:https://dev59.com/7VHTa4cB1Zd3GeqPORPd,但是我没有任何域对象继承。我的字段和验证标签按以下顺序排列,但只打印了MustBe18错误和Required错误。在这个模型中有几个其他字段需要更多的验证,但代码中ValidationAttribute的顺序似乎并不重要。链接帖子中jfar的答案似乎暗示可以构建一个辅助工具,但怎么做呢?如何控制顺序?
[Required(ErrorMessage = "This field is required")]
[DisplayName("Date of Birth")]
[MustBeValidDate(ErrorMessage = "Must be a valid date")]
[MustBe18(ErrorMessage = "You must be 18 years old")]
[MustNotBeOver100(ErrorMessage = "This caller is too old")]
public string dob { get; set; }
MustBe18:ValidationAttribute(重载的IsValid方法)
必须满18岁:验证属性(重载的IsValid方法)
try
{
DateTime dob = new DateTime(DateTime.Now.AddYears(-18).Year, DateTime.Now.Month, DateTime.Now.Day);
return DateTime.Compare(DateTime.Parse(value.ToString()), dob) <= 0;
}
catch
{
return false;
}