Validaciones con DataAnnotations

1. Definir los DataAnnotations en el ViewModel para cada atributo que se quiera validar:

[Required(ErrorMessage = "Ingrese el nombre")]
public string Nombre { get; set; }

2. Agregar la verificación en el Action:

public ActionResult Guardar(PersonaViewModel persona)
{
   if (ModelState.IsValid)
   {
      ...
      return View();
   } else
   {
      ViewBag.Mensaje = "Error en los datos ingresados, debe completar los campos requeridos";
      return View("Error");
   }
}

*** El objeto ModelState contiene toda la información de los errores ocurridos, en ModelState.Values
*** Solo con esto, ya queda funcionando la validación del lado del servidor.
*** Para que la validación se haga también del lado del cliente, se debe agregar lo siguiente:

1. Agregar los siguientes scripts:

<script src="/Scripts/jquery.validate.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.js"></script>

2. Agregar los ValidationMessages para cada atributo:

<div class="field-validation-error">@Html.ValidationMessageFor(m => m[i].Path)</div>
@Html.TextBoxFor(m => m[i].Path)

3. También se puede agregar el ValidationSummary, que sirve para mostrar un resumen de todos los campos con error. Esto en general se agrega al final de la página:

<div class="validation-summary-errors">
    @Html.ValidationSummary()
</div>

*** Tener en cuenta que el comportamiento de las validaciones en IE a veces es diferente a Chrome ***

No hay comentarios:

Publicar un comentario