IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

MVC Music Store Partie 6 : Utilisation des DataAnnotations pour la validation des modèles

Date de publication : 10/01/2012. Date de mise à jour : 10/01/2012.

Par Jon Galloway (Blog)
 Jean-Michel Ormes (Traduction) (Home) (Blog)
 

Le MVC Music Store est une application d'étude qui introduit et explique étape par étape comment utiliser ASP.NET MVC et Visual Web Developer pour faire du développement web. Le MVC Music Store est un exemple simplifié d'application de magasin qui vend des albums de musique en ligne, implémente l'administration du site, l'authentification d'utilisateurs et la fonctionnalité d'achat sous forme de panier. Ce tutoriel détaille toutes les étapes à suivre pour construire le MVC Music Store. La partie 6 du tutoriel s'intitule "Utilisation des DataAnnotations pour la validation des modèles".
Retrouvez l'ensemble des articles de la série sur cette page : MVC Music Store
N'hésitez pas à laisser votre avis sur le contenu de l'article directement via le forum : 5 commentaires Donner une note à l´article (5)

       Version PDF (Miroir)   Version hors-ligne (Miroir)
Viadeo Twitter Facebook Share on Google+        



Traduction
1. Introduction
2. Ajouter une validation à notre formulaire Album
3. Tester la validation côté client
Remerciements


Traduction

Cet article est la traduction non officielle de l'article original de en Jon Galloway,en Part 6: Using Data Annotations for Model Validation

Le code source ainsi que le support technique sont disponibles à cette adresse : en http://mvcmusicstore.codeplex.com


1. Introduction

Nous avons un problème majeur avec nos formulaires Create et Edit : ils n'effectuent aucune validation. Nous pouvons faire certaines choses comme laisser des champs requis vides ou encore taper une lettre dans le champ Price, et la première erreur que nous allons voir apparaître proviendra de la base de données.

Nous pouvons facilement ajouter une validation de données à notre application en ajoutant des DataAnnotations à notre modèle de classes. Les DataAnnotations nous permettent de décrire les règles que nous voulons appliquer à notre modèle de propriétés, ASP.NET MVC se chargeant de les faire respecter et d'afficher les messages appropriés à nos utilisateurs.


2. Ajouter une validation à notre formulaire Album

Nous allons utiliser les attributs DataAnnotations suivants :

  • Required – Indique que cette propriété est un champ requis.
  • DisplayName – Définit le texte que l'on veut utiliser dans les champs du formulaire et dans les messages de validation.
  • StringLength – Définit la longueur maximum pour un champ de type chaîne.
  • Range – Donne une valeur minimale et maximale d'un champ de type numérique.
  • Bind – Liste les champs à exclure ou inclure lorsque l'on lie des paramètres ou des données du formulaire au modèle de propriété.
  • ScaffoldColumn – Permet d'avoir des champs cachés dans les formulaires d'édition.
Note : Pour plus d'informations sur la validation de modèle en utilisant les attributs DataAnnotation, voir la documentation MSDN sur http://go.microsoft.com/fwlink/?LinkId=159063

Ouvrez la classe Album et ajoutez les instructions using suivantes en haut.

	  	
using System.ComponentModel;
 using System.ComponentModel.DataAnnotations;
 using System.Web.Mvc;
		
			
Ensuite, mettez à jour les propriétés afin d'ajouter des attributs d'affichage et de validation comme indiqué ci-dessous.

	  	
namespace MvcMusicStore.Models
{
    [Bind(Exclude = "AlbumId")]
    public class Album
    {
        [ScaffoldColumn(false)]
        public int      AlbumId    { get; set; }
        [DisplayName("Genre")]
        public int      GenreId    { get; set; }
        [DisplayName("Artist")]
        public int      ArtistId   { get; set; }
        [Required(ErrorMessage = "An Album Title is required")]
        [StringLength(160)]
        public string   Title      { get; set; }
        [Required(ErrorMessage = "Price is required")]
        [Range(0.01, 100.00,
            ErrorMessage = "Price must be between 0.01 and 100.00")]
        public decimal Price       { get; set; }
        [DisplayName("Album Art URL")]
        [StringLength(1024)]
        public string AlbumArtUrl { get; set; }
        public virtual Genre  Genre    { get; set; }
        public virtual Artist Artist   { get; set; }
    }
}
		
			
Tant que nous y sommes, nous avons également changé les propriétés Genre et Artist en tant que virtual. Cela permet à Entity Framework de les charger si nécessaire.

	  	
public virtual Genre    Genre       { get; set; }
public virtual Artist   Artist      { get; set; }
		
			
Après avoir ajouté ces attributs à notre modèle Album, nos écrans Create et Edit commencent immédiatement la validation des champs et utilisent les attributs DisplayName que nous avons choisis (e.g. "Album Art Url" au lieu de "AlbumArtUrl"). Lancez l'application et naviguer vers /StoreManager/Create.

Ensuite, nous allons briser certaines règles de validation. Saisissez 0 dans le champ Price et laissez le champ Title vide. Lorsque l'on clique sur le bouton Create, nous voyons le formulaire s'afficher avec des messages d'erreurs de validation indiquant quels champs ne respectent pas les règles de validation que nous avons définies.


3. Tester la validation côté client

La validation côté serveur est très importante dans une application, car les utilisateurs peuvent contourner la validation côté client. Cependant, les formulaires web qui n'implémentent que la validation côté serveur se retrouvent confrontés à 3 problèmes importants.

  1. L'utilisateur doit attendre que le formulaire soit posté, validé sur le serveur, et que la réponse soit envoyée au navigateur.
  2. L'utilisateur n'a pas un retour immédiat lorsqu'il corrige un champ donc outrepasse les règles de validation.
  3. Nous gaspillons les ressources du serveur pour effectuer la logique de validation au lieu de tirer parti du navigateur de l'utilisateur.
Heureusement, les modèles d'ASP.NET MVC 3 ont une validation côté client intégrée, qui ne nécessite aucun travail supplémentaire, quel qu'il soit.

Taper une seule lettre dans le champ Title répond aux exigences de validation, alors le message de validation est immédiatement enlevé.

Vous pouvez utiliser les discussions disponibles sur en http://mvcmusicstore.codeplex.com pour toutes questions ou tous commentaires.


Remerciements

Je tiens à remercier en Jon Galloway pour son aimable autorisation de traduire l'article, ainsi que Thomas Levesque et jpcheck pour la relecture orthographique.



               Version PDF (Miroir)   Version hors-ligne (Miroir)

Valid XHTML 1.0 TransitionalValid CSS!