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.

new proyect

Después nos saldrá una ventana para configurar la aplicación y seleccionaremos MVC y marcaremos la casilla de MVC y pulsaremos en OK.

proyect mvc
Nuevo proyecto ASP.NET Web Application(.NET Framework)

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.

clase usuario
Clase personalizada de usuarios

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.

HomeController
Controlador HomeController

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:

Views
Como añadir vistas en el HomeController

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.

registr
Creación de la vista Registro

La vista Correcto la creamos con la plantilla Empty (sin modelo):

correcto
Creación de la vista Correcto
@{
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:

layout

Paso 4: Probamos nuestra aplicación

El resultado de un formulario introducido de forma erronea sería:

ejemploerroneo

Por contra, si ejecutamos correctamente veríamos:

ejemplocorrecto

Autor: Nombre y apellidos

Curso: Microsoft MCSA Web Applications + Microsoft MCSD App Builder + Xamarin

Centro: Tajamar

Año académico: 2018-2019

Código : https://github.com/MarcosMolano/ValidacionesMvc

Leave a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.