Buscar..


Validación del modelo con atributos de validación

Los atributos de validación se pueden usar para configurar fácilmente la validación del modelo.

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

Los atributos incorporados son:

  • [CreditCard] : valida que la propiedad tenga un formato de tarjeta de crédito.
  • [Compare] : valida dos propiedades en una coincidencia de modelo.
  • [EmailAddress] : valida que la propiedad tenga un formato de correo electrónico.
  • [Phone] : Valida que la propiedad tiene un formato telefónico.
  • [Range] : valida el valor de la propiedad dentro del rango dado.
  • [RegularExpression] : valida que los datos coincidan con la expresión regular especificada.
  • [Required] : Hace una propiedad requerida.
  • [StringLength] : valida que una propiedad de cadena tenga a lo sumo la longitud máxima dada.
  • [Url] : valida que la propiedad tenga un formato de URL.

Validación del modelo con atributo personalizado

Si los atributos incorporados no son suficientes para validar los datos de su modelo, entonces puede colocar su lógica de validación en una clase derivada de ValidationAttribute. En este ejemplo, solo los números impares son valores válidos para un miembro modelo.

Atributo de validación personalizado

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

Clase de modelo

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


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow