我的模型代码中有以下内容
[Required]
public DateTime? PreferredShowDate1 { get; set; }
public DateTime? PreferredShowDate2 { get; set; }
public DateTime? PreferredShowDate3 { get; set; }
现在,我想确保PreferredShowDate1< PreferredShowDate2< PreferredShowDate3 并且这3个日期都不相同。
是否可以在型号代码中执行此操作?我可以这样做吗?
//put in some code in attribute to compare preferredShowDate2 with preferredShowDate1
[compare]
public DateTime? PreferredShowDate2 { get; set; }
有什么想法吗?
答案 0 :(得分:5)
答案 1 :(得分:0)
您可以使用IValidatableObject接口执行此类验证。
public class MyClass : IValidatableObject
{
public DateTime? PreferredShowDate1 { get; set; }
public DateTime? PreferredShowDate2 { get; set; }
public DateTime? PreferredShowDate3 { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
//Example compare stuff. Your needs may vary.
if ((DateTime.Compare(PreferredShowDate1, PreferredShowDate2) < 0) &&
(DateTime.Compare(PreferredShowDate2, PreferredShowDate3) < 0))
{
yield return new ValidationResult("Invalid Date", new[] { "PreferredShowDate1" });
}
}