2009-08-31 3 views
0

Я вижу атрибуты 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; } 

ответ

2

Вы можете использовать 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."); 
} 
+0

удивительную идею. это похоже на полезную технику для многих других ситуаций! –

 Смежные вопросы

  • Нет связанных вопросов^_^