Validaciones en ASP.NET
Introducción
En ese post se va a explicar cómo realizar validaciones a formularios en aplicaciones web ASP.NET. Para realizar esto, necesitaremos crearnos un proyecto nuevo, con una zona llamada Registro, que será la que validaremos. La validación se realizará mediante decoraciones en MVC.
Paso 1: Creamos un nuevo proyecto MVC
Lo primero es crear un nuevo proyecto ASP.NET(.NET Framework), para ello pulsaremos en:
File -> New -> Proyect. Pondremos el nombre que deseemos al proyecto, en mi caso, ValidacionesMVC.
Podemos pulsar en browser para seleccionar la ruta donde queremos guardar nuestro proyecto.
Después nos saldrá una ventana para configurar la aplicación y seleccionaremos MVC y marcaremos la casilla de MVC y pulsaremos en OK.
Paso 2: Creamos nuestra clase personalizada
El siguiente paso, es crearnos nuestro modelo. Sobre la carpeta de Model botón derecho Add->New->Class. Y la ponemos un nombre, en mi caso la llamamos Usuario y pulsamos en OK.
En la clase Usuario es donde podremos personalizar los mensajes de error los campos obligatorios o la validación del correo. Esto se realiza mediante atributos o decoraciones.
Esto se realiza mediante atributos o decoraciones.
Pero para poder acceder a estos atributos, necesitaremos hacer el using de System.ComponentModel.DataAnnotations. Este namespace, proporciona clases de atributos que se usan para definir los metadatos para ASP.NET MVC y los controles de ASP.NET.
A continuación les dejo un enlace donde pueden ver la explicaciñon de lo que hace cada atributo:
https://geeks.ms/gortigosa/2010/12/30/asp-net-mvc-validacin-modelo-entity-framework/
El código de la clase Usuario es el siguiente:
using System;
using System.Collections.Generic;
//necesario realizar el usung de DataAnnotations
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
namespace ValidacionesMVC.Models
{
public class Usuario
{
[Required(ErrorMessage = "El nombre es obligatorio")]
[RegularExpression("[a-zA-Z]{2,20}",
ErrorMessage = "Solo admite letras entre 2 y 20")]
public String Nombre { get; set; }
[Required(ErrorMessage = "El apellido es obligatorio")]
[RegularExpression("[a-zA-Z]{2,20}",
ErrorMessage = "Solo admite letras entre 2 y 20")]
public String Apellido { get; set; }
[RegularExpression("[0-9]{2}", ErrorMessage = "Solo numeros")]
[Range(18, 99,
ErrorMessage = "La edad debe estar comprendida entre 18 y 99 años")]
public int Edad { get; set; }
[Required(ErrorMessage = "El correo es obligatorio")]
[EmailAddress(ErrorMessage = "No tiene el formato de email")]
public String Correo { get; set; }
[Required(ErrorMessage = "El nombre del usuario es obligatorio")]
public String NombreUsuario { get; set; }
[Required(ErrorMessage = "La password es obligatorio")]
[DataType(DataType.Password)]
public String PassWord { get; set; }
[Required(ErrorMessage = "El password2 es obligatorio")]
[DataType(DataType.Password)]
[Compare("PassWord", ErrorMessage = "Las password no coinciden")]
public String PassWord2 { get; set; }
}
}
Paso 3: Creamos los métodos de HomeController y las vistas
Después de tener creada esta clase deberemos ir a la carpeta controller y abrir el HomeController.cs.
Dentro de este controlador debemos añadir los métodos de registro y correcto para poder visualizar la vista que crearemos a continuación. La vista Correcto se visualizará una vez rellenemos los campos de manera correcta. Por esa razón necesitamos preguntar si el ModelState es valido, es decir, se cumplen los requisitos que hemos configurado en nuestra clase Usuario.
Por ese motivo, si no cumple la condición, debemos devolver la misma vista con el modelo usuario. Y así, cuando cargue la pagina mostrara los mensajes en los campos que hemos introducido mal.
public ActionResult Registro()
{
Usuario usuario = new Usuario();
return View(usuario);
}
[HttpPost]
public ActionResult Registro(Usuario usuario)
{
if (ModelState.IsValid)
{
return RedirectToAction("Correcto");
}
return View(usuario);
}
public ActionResult Correcto()
{
return View();
}
Dentro de la carpeta Views=>Home añadimos la vista Registro y Correcto:
La vista de Registro la creamos con la plantilla Create y con el modelo de la clase que hemos creado, es decir, la clase Usuario.
La vista Correcto la creamos con la plantilla Empty (sin modelo):
@{
ViewBag.Title = "Correcto";
}
<h2>Correcto</h2>
Y por último, añadiremos un enlace para poder acceder al registro desde el Index de la pagina. Para ello, dentro de Views->Shared->_Layout.cshtml añadimos la linea que esta marcada en la siguiente captura:
Paso 4: Probamos nuestra aplicación
El resultado de un formulario introducido de forma erronea sería:
Por contra, si ejecutamos correctamente veríamos:
Autor: Nombre y apellidos
Curso: Microsoft MCSA Web Applications + Microsoft MCSD App Builder + Xamarin
Centro: Tajamar
Año académico: 2018-2019