Валидаторы замков, как проверить, меньше или больше или равно
Я вижу атрибуты ValidateIsLesser и ValidateIsGreater. Но что, если я хочу сделать ValidateIsLesserOrEqual и / или ValidateIsGreaterOrEqual. Мне просто нужно написать эти пользовательские атрибуты или есть встроенные возможности для этого, которые мне трудно найти?
[ValidateNonEmpty]
[ValidateDate]
[ValidateIsLesser(IsLesserValidationType.Date, "EndDate", "Start Date must be before End Date.")]
public DateTime StartDate { get; set; }
[ValidateNonEmpty]
[ValidateDate]
[ValidateIsGreater(IsGreaterValidationType.Date, "StartDate", "End Date must be after the Start Date.")]
public DateTime EndDate { get; set; }
1 ответ
Решение
Вы можете использовать атрибут ValidateSelf и предоставить свою собственную проверку для сравнений OrEqual:
[ValidateNonEmpty]
[ValidateDate]
public DateTime StartDate { get; set; }
[ValidateNonEmpty]
[ValidateDate]
public DateTime EndDate { get; set; }
[ValidateSelf]
public void ValidateDate(ErrorSummary errors)
{
if (StartDate >= EndDate)
errors.RegisterErrorMessage("StartDate", "Start date must be earlier than end date.");
}