Castle Validatoren, wie Validate Ist Lesser / Größer als oder gleich
-
20-09-2019 - |
Frage
Ich sehe die ValidateIsLesser und ValidateIsGreater Attribute. Aber was, wenn ich möchte eine ValidateIsLesserOrEqual und / oder ValidateIsGreaterOrEqual zu tun. Brauche ich nur diese benutzerdefinierten Attribute zu schreiben oder gibt es vorgefertigte Funktionen dafür, dass ich eine harte Zeit zu finden, die?
[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; }
Lösung
Sie können die verwenden ValidateSelf Attribut und geben Sie Ihre eigene Validierung für die OrEqual Vergleiche:
[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.");
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow