Kategorie: Wszystkie - anotaciones - servidor - cliente - reglas

przez Ruth Terrones 2 lat temu

214

VALIDANDO MODELOS MVC

VALIDANDO MODELOS
MVC

podemos validar, establecer mensaje de error, establecer etiqueta de visualización, tipo de campo, etc. para una propiedad particular.

VALIDANDO MODELOS MVC

Anotaciones de validación

Tenemos a:
Phone
CreditCard

var owner = $('#owner'),
    cardNumber = $('#cardNumber'),
    cardNumberField = $('#card-number-field'),
    CVV = $("#cvv"),
    mastercard = $("#mastercard"),
    confirmButton = $('#confirm-purchase'),
    visa = $("#visa"),
    amex = $("#amex");







ardNumber.keyup(function() {
    amex.removeClass('transparent');
    visa.removeClass('transparent');
    mastercard.removeClass('transparent');

    if ($.payform.validateCardNumber(cardNumber.val()) == false) {
        cardNumberField.removeClass('has-success');
        cardNumberField.addClass('has-error');
    } else {
        cardNumberField.removeClass('has-error');
        cardNumberField.addClass('has-success');
    }

    if ($.payform.parseCardType(cardNumber.val()) == 'visa') {
        mastercard.addClass('transparent');
        amex.addClass('transparent');
    } else if ($.payform.parseCardType(cardNumber.val()) == 'amex') {
        mastercard.addClass('transparent');
        visa.addClass('transparent');
    } else if ($.payform.parseCardType(cardNumber.val()) == 'mastercard') {
        amex.addClass('transparent');
        visa.addClass('transparent');
    }
});
















confirmButton.click(function(e) {
    e.preventDefault();

    var isCardValid = $.payform.validateCardNumber(cardNumber.val());
    var isCvvValid = $.payform.validateCardCVC(CVV.val());

    if(owner.val().length < 5){
        alert("Wrong owner name");
    } else if (!isCardValid) {
        alert("Wrong card number");
    } else if (!isCvvValid) {
        alert("Wrong CVV");
    } else {
        // Everything is correct. Add your form submission code here.
        alert("Everything is correct");
    }
});


Compare

clase pública CreateAccountForm: IValidatableObject 
{ 
    [Obligatorio] 
    cadena pública Nombre { get; establecer; }
    [Obligatorio] 
    [Dirección de correo electrónico] 
    public string Correo electrónico { get; establecer; }
    [Obligatorio] 
    [MinLength(8)] 
    public string Contraseña { get; establecer; }
    [Obligatorio] 
    [Comparar(nombrede(Contraseña))] 
    public string Contraseña2 { get; establecer; }
    public bool AgreeWithConditions { get; establecer; }
    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) 
    { 
        if (!De acuerdo con las condiciones) 
        { 
            yield return new ValidationResult( 
                "Debe estar de acuerdo con los términos y condiciones.", 
                new[] { nameof(AgreeWithConditions) } 
            ); 
        } 
    } 
}


Range

public class Usuario {


@Size(min = 3, max = 20)

private String nombre;


@NotBlank

private String apellido;


@Email

@NotBlank

private String correo;


@Pattern(regexp = "^[a-zA-Z]\\w{3,14}$")

private String password;


@Min(18)

@NotNull

private Integer edad;


@NotNull

private Boolean sexo;


// getter, setter, ...


}

@Size(min=3, max=20): Indica la longitud mínima y máxima que debe tener el texto nombre. @NotBlank: Impide que un campo de texto esté vacío. @Email: Verifica que la dirección de correo electrónico tenga el formato correcto. @Pattern(regexp="..."): El texto debe cumplir con la expresión regular indicada, en nuestro ejemplo la expresión regular establece que la contraseña debe contener letras y números. @NotNull: Este campo no puede ser nulo. @Min(18): El valor mínimo es 18.

RegularExpression
Required

[Required] public string Title { get; set; }

Server side (model) validation

Se requieren validaciones del lado del servidor para garantizar que los datos recibidos sean correctos y válidos
System.ComponentModel.DataAnnotations.
se usan atributos conocidos como anotaciones de datos.

Validación de Modelos

Las características de validación de ASP.NET MVC
aprovechando la infraestructura de validación de ASP.NET MVC

(incluyendo validación en cliente, validación de enlace de modelos, etc).

están diseñadas para que sea sencillo integrar cualquier tipo de arquitectura de validación
Los programadores
aprovechar el soporte de validación DataAnnotation

ofrecen una forma realmente sencilla de añadir declarativamente reglas de negocio a objetos y propiedades con un mínimo código.

la validación lógica esté siempre en el servidor, y opcionalmente podamos forzar esas validaciones en el cliente a través de JavaScript.
La validación de los datos introducidos por los usuarios y reforzar las reglas de negocio es un requisito principal en la mayoría de aplicaciones web.