Custom validering
Det går an å lage egne attributter for validering, og ofte er det en god idé, spesielt hvis man kan gjenbruke de på tvers av modeller.
Har man derimot mer spesifikk validering på en bestemt modell, feks. kombinasjon av felter, avhengigheter mot databasen eller lignende, kan det være greit å implementere en valideringsmetode.
Ved å implementere interface IValidatableObject sørger man for at MVC-rammeverket automatisk kaller valideringsmetoden.
Implementer IValidatableObject i PersonModel
Trykk på den røde lampa (ALT + ENTER) og velg Implement missing members
Vi får følgende metode:
public IEnumerable Validate(ValidationContext validationContext)
{
throw new NotImplementedException();
}
Nå gjenstår det bare å legge til valideringslogikken i metoden.Vi ønsker å lage en liste med
ValidationResult og legge til eventuelle feil i den lista:
public IEnumerable Validate(ValidationContext validationContext)
{
var result = new List();
if (FirstName.Length + LastName.Length < 5)
{
var validationResult = new ValidationResult("For- og etternavn må totalt være minst 5 bokstaver", new[] { "FirstName", "LastName" });
result.Add(validationResult);
}
return result;
}
Bygg og test!
<= Tilbake