Zoeken…


Modelvalidatie met validatiekenmerken

Validatie-attributen kunnen worden gebruikt om modelvalidatie eenvoudig te configureren.

public class MyModel
{
    public int id { get; set; }

    //sets the FirstName to be required, and no longer than 100 characters
    [Required]
    [StringLength(100)]
    public string FirstName { get; set; }
}

De ingebouwde attributen zijn:

  • [CreditCard] : valideert dat de accommodatie een creditcardindeling heeft.
  • [Compare] : valideert twee eigenschappen in een modelovereenkomst.
  • [EmailAddress] : valideert dat de eigenschap een e-mailindeling heeft.
  • [Phone] : valideert dat de eigenschap een telefoonindeling heeft.
  • [Range] : valideert dat de eigenschapswaarde binnen het gegeven bereik valt.
  • [RegularExpression] : valideert dat de gegevens overeenkomen met de opgegeven reguliere expressie.
  • [Required] : maakt een eigenschap vereist.
  • [StringLength] : valideert dat een [StringLength] maximaal de gegeven maximale lengte heeft.
  • [Url] : valideert dat de eigenschap een URL-indeling heeft.

Modelvalidatie met aangepast kenmerk

Als de ingebouwde kenmerken niet voldoende zijn om uw modelgegevens te valideren, kunt u uw validatielogica in een klasse plaatsen die is afgeleid van ValidationAttribute. In dit voorbeeld zijn alleen oneven getallen geldige waarden voor een modellid.

Aangepast validatiekenmerk

public class OddNumberAttribute : ValidationAttribute
{
    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        try
        {
            var number = (int) value;
            if (number % 2 == 1)
                return ValidationResult.Success;
            else
                return new ValidationResult("Only odd numbers are valid.");
        }
        catch (Exception)
        {
            return new ValidationResult("Not a number.");
        }            
    }
}

Model Klasse

public class MyModel
{
    [OddNumber]
    public int Number { get; set; }
}


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow