Szukaj…


Walidacja modelu z atrybutami walidacji

Atrybuty sprawdzania poprawności można wykorzystać do łatwej konfiguracji sprawdzania poprawności modelu.

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; }
}

Wbudowane atrybuty to:

  • [CreditCard] : sprawdza, czy nieruchomość ma format karty kredytowej.
  • [Compare] : Sprawdza poprawność dwóch właściwości w dopasowaniu modelu.
  • [EmailAddress] e-mail [EmailAddress] : Sprawdza, czy właściwość ma format wiadomości e-mail.
  • [Phone] : Sprawdza, czy właściwość ma format telefoniczny.
  • [Range] : Sprawdza, czy wartość nieruchomości mieści się w podanym zakresie.
  • [RegularExpression] : Sprawdza, czy dane są zgodne z określonym wyrażeniem regularnym.
  • [Required] : wymaga właściwości.
  • [StringLength] : Sprawdza, czy właściwość string ma co najwyżej podaną maksymalną długość.
  • [Url] : Sprawdza, czy właściwość ma format adresu URL.

Walidacja modelu z niestandardowym atrybutem

Jeśli wbudowane atrybuty nie są wystarczające do sprawdzenia poprawności danych modelu, można umieścić logikę sprawdzania poprawności w klasie pochodzącej z ValidationAttribute. W tym przykładzie tylko nieparzyste liczby są poprawnymi wartościami dla elementu modelu.

Niestandardowy atrybut walidacji

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.");
        }            
    }
}

Klasa modelu

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


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow