2009-08-31 85 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

真棒想法。這看起來像許多其他情況下有用的技術! – 2010-01-04 23:14:37