Ricerca…


Validazione del modello con Validation Attrributes

Gli attributi di convalida possono essere utilizzati per configurare facilmente la convalida del modello.

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

Gli attributi incorporati sono:

  • [CreditCard] : convalida che la proprietà abbia un formato di carta di credito.
  • [Compare] : convalida due proprietà in una corrispondenza del modello.
  • [EmailAddress] : convalida che la proprietà ha un formato email.
  • [Phone] : convalida che la proprietà ha un formato telefonico.
  • [Range] : convalida il valore della proprietà rientra nell'intervallo specificato.
  • [RegularExpression] : convalida che i dati corrispondano all'espressione regolare specificata.
  • [Required] : rende necessaria una proprietà.
  • [StringLength] : convalida che una proprietà stringa abbia al massimo la lunghezza massima specificata.
  • [Url] : convalida che la proprietà ha un formato URL.

Convalida del modello con attributo personalizzato

Se gli attributi incorporati non sono sufficienti per convalidare i dati del modello, è possibile inserire la logica di convalida in una classe derivata da ValidationAttribute. In questo esempio, solo i numeri dispari sono valori validi per un membro del modello.

Attributo di convalida personalizzato

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

Classe di modello

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


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow