asp.net-core
Modele
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