ASP.NET MVC 4 – Remote Validation

Como ya hemos visto en un post anterior con solo definir un conjunto estático de reglas en los atributos de nuestro modelo basta para definir las validaciones del lado del cliente (esto gracias a la librerías DataAnnotations – C# – y jquery Validation – JS -). Sin embargo, hay situaciones donde este conjunto estático de reglas no es suficiente, y es necesario aplicar lógica “de negocio” en la validación de un atributo (por ejemplo, un formulario de registración en el que se necesita validar si el e-mail ingresado no esta asociado a una cuenta ya existente). Los casos similares a este último son apropiados para implementar validaciones remotas.

ASP.NET MVC 4 nos provee un mecanismo muy simple para realizar validaciones remotas. Por un lado vamos a necesitar un método de acción en donde vamos a realizar la lógica de validación propiamente dicha. Podría ser algo como lo siguiente:

Método de Acción donde realizamos la validación.

Método de Acción donde realizamos la validación.

Como podemos ver, la acción devuelve un objeto JsonResult indicando si la validación fue exitosa (true value) y en caso contrario un mensaje explicativo (string value). Como segundo parámetro de la respuesta, le pasamos el valor de enumerado JsonRequestBehavior.AllowGet el cual nos permite enviar JSON en una respuesta de una petición GET.

Bien, ahora para asegurarnos que la validación remota se dispare, debemos agregar el atributo [Remote] en el modelo. Este atributo espera el nombre del controlador y la acción que deben ser llamadas. Cuando el usuario ingrese los datos en la caja de texto, el cliente sabe que debe invocar al método de acción indicado con el valor ingresado:

Agregando el atributo Remote a nuestro modelo.

Agregando el atributo Remote a nuestro modelo.

También es necesario habilitar las características ClientValidation y UnobtrusiveJavascript desde el web.config:

1:<appSettings>
2:  <add key= "ClientValidationEnabled " value= "true "/> 
3:  <add key= "UnobtrusiveJavaScriptEnabled " value= "true "/> 
4:</appSettings>

Por último corremos la aplicación y probamos nuestra validación remota:

Remote Validation in action!

Remote Validation in action!

Espero que les sea de utilidad!

Anuncios

2 comentarios en “ASP.NET MVC 4 – Remote Validation

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s