Suche…


Modellvalidierung mit Validierungsattributen

Validierungsattribute können zur einfachen Konfiguration der Modellvalidierung verwendet werden.

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

Die eingebauten Attribute sind:

  • [CreditCard] : [CreditCard] die Eigenschaft ein Kreditkartenformat hat.
  • [Compare] : Überprüft zwei Eigenschaften in einer Modellübereinstimmung.
  • [EmailAddress] : [EmailAddress] die Eigenschaft ein E-Mail-Format hat.
  • [Phone] : Überprüft, ob die Eigenschaft ein Telefonformat hat.
  • [Range] : Überprüft, ob der Eigenschaftswert innerhalb des angegebenen Bereichs liegt.
  • [RegularExpression] : Überprüft, ob die Daten mit dem angegebenen regulären Ausdruck übereinstimmen.
  • [Required] : Macht eine Eigenschaft erforderlich.
  • [StringLength] : Überprüft, ob eine String-Eigenschaft höchstens die angegebene maximale Länge hat.
  • [Url] URL [Url] : Überprüft, ob die Eigenschaft ein URL-Format hat.

Modellvalidierung mit benutzerdefiniertem Attribut

Wenn die integrierten Attribute nicht zum Validieren Ihrer Modelldaten ausreichen, können Sie Ihre Validierungslogik in einer von ValidationAttribute abgeleiteten Klasse platzieren. In diesem Beispiel sind nur ungerade Zahlen gültige Werte für ein Modellmitglied.

Benutzerdefiniertes Validierungsattribut

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

Modellklasse

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


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow