Castello di validatori come convalidare è minore / maggiore o uguale
-
20-09-2019 - |
Domanda
Vedo la ValidateIsLesser e ValidateIsGreater attributi. Ma cosa succede se voglio fare un ValidateIsLesserOrEqual e / o ValidateIsGreaterOrEqual. Ho solo bisogno di scrivere queste attributi personalizzati o c'è pre-costruito capacità per questo che sto avendo una scoperta momento difficile?
[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; }
Soluzione
È possibile utilizzare il ValidateSelf di attributo e fornire la propria convalida per i confronti 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.");
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow