Sök…


Modellvalidering med valideringsattribut

Valideringsattribut kan användas för att enkelt konfigurera modellvalidering.

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 inbyggda attributen är:

  • [CreditCard] : Validerar att fastigheten har ett kreditkortsformat.
  • [Compare] : Validerar två egenskaper i en modellmatch.
  • [EmailAddress] : Validerar att fastigheten har ett e-postformat.
  • [Phone] : Validerar att fastigheten har ett telefonformat.
  • [Range] : Validerar fastighetsvärdet faller inom det givna intervallet.
  • [RegularExpression] : Validerar att data matchar det angivna reguljära uttrycket.
  • [Required] : Gör en fastighet som krävs.
  • [StringLength] : Validerar att en strängegenskap har högst den angivna maximala längden.
  • [Url] : Validerar att fastigheten har ett URL-format.

Modellvalidering med anpassat attribut

Om de inbyggda attributen inte är tillräckliga för att validera dina modelldata kan du placera din valideringslogik i en klass härrörande från ValidationAttribute. I det här exemplet är bara udda nummer giltiga värden för en modellmedlem.

Anpassat valideringsattribut

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

Modellklass

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


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow