Podstatnou část každé webové aplikace jsou validace. Dle vytvořené metodiky je doporučeno validace zpracovávat společně
s modelem, který jejich implementaci usnadňuje.
Na následujícím výpisu je možné vidět validaci dvou atributů typu datum pomocí anotací, která se následně v aplikaci
projeví jak na straně klienta (díky integrované knihovně jQuery), tak serveru.
Kromě validace pomocí předdefinovaných anotací je implementována také validace vlastní, která u výpůjček zajišťuje, aby
datum do bylo pozdější než datum od. Toho je dosaženo tak, že třída BorrowingModel implementuje rozhraní
IValidatableObject a potřebné chování validace je následně ošetřeno v metodě Validate. Takto vytvořená validace se
následně projeví jen na straně serveru. To v praxi znamená, že se formulář po stisknutí tlačítka na odeslání neodešle,
ale vrátí se s odpovídající chybou.
public class BorrowingModel : IValidatableObject
{
[Display(Name = "Od kdy")]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd. MM. yyyy}")]
[Required(ErrorMessage = "Atribut {0} je povinný")]
public DateTime DateFrom { get; set; } [Display(Name = "Do kdy")]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd. MM. yyyy}")]
[Required(ErrorMessage = "Atribut {0} je povinný")]
public DateTime DateTo { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (DateTo < DateFrom)
{
yield return
new
ValidationResult(errorMessage: "Datum do musí být pozdější než datum od",
memberNames: new[] { "DateTo" });
}
}
}
|