Accueil > ASP.NET MVC : A la découverte des Data Annotations
Eric Galiano

ASP.NET MVC : A la découverte des Data Annotations

ASP/NET MVC : à la découverte des Data Annotations

Sur tous les formulaires Web, il est nécessaire de contrôler les actions de l’utilisateur : on ne veut pas qu’il renseigne des lettres là où on attend une valeur numérique par exemple. C’est là que rentre en compte les Data Annotations.

ASP.NET MVC : A la découverte des Data Annotations

Les Data Annotations permettent de spécifier sur le modèle le type de données que l’on souhaite associer à chacune des propriétés, le moteur ASP.NET se chargeant d’afficher un message d’erreur si les données renseignées ne correspondent pas aux Data Annotations du modèle.

 

Exemple d’utilisation

Voici un exemple d’utilisation des Data Annotations :

Prenons un modèle représentant un livre et une vue affichant un formulaire permettant de créer une nouvelle instance de Livre. Le modèle se représente de la manière suivante :

public class Livre
{
[ScaffoldColumn(false)]
public int Id { get; set; }

[DisplayName(“Titre”)]
[Required(ErrorMessage = “Le titre du livre est obligatoire”)]
[StringLength(256)]
public string Titre { get; set; }

[DisplayName(“Auteur”)]
[Required(ErrorMessage = “L’auteur du livre est obligatoire”)]
[StringLength(256)]
public string Auteur { get; set; }

[Required(ErrorMessage = “Le prix du livre est obligatoire”)]
[Range(0, 500.00, ErrorMessage = “Le prix doit être entre 0 et 500”)]
public decimal Prix { get; set; }
}

Nous avons une Vue qui implémente le template de création lié au modèle Livre:

@model Models.Livre

@{
ViewBag.Title = “AjoutLivre”;
}

<h2>AjoutLivre</h2>

@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
<legend>Livre</legend>
<div class=”editor-label”>
@Html.LabelFor(model => model.Titre)
</div>
<div class=”editor-field”>
@Html.EditorFor(model => model.Titre)
@Html.ValidationMessageFor(model => model.Titre)
</div>
<div class=”editor-label”>
@Html.LabelFor(model => model.Auteur)
</div>
<div class=”editor-field”>
@Html.EditorFor(model => model.Auteur)
@Html.ValidationMessageFor(model => model.Auteur)
</div>
<div class=”editor-label”>
@Html.LabelFor(model => model.Prix)
</div>
<div class=”editor-field”>
@Html.EditorFor(model => model.Prix)
@Html.ValidationMessageFor(model => model.Prix)
</div>
<p>
<input type=”submit” value=”Create” />
</p>
</fieldset>
}

<div>
@Html.ActionLink(“Back to List”, “Index”)
</div>
@section Scripts {
@Scripts.Render(“~/bundles/jqueryval”)
}

Quand on navigue sur la page on arrive donc au formulaire suivant :

vueAjoutLivre

Si je clique sur le bouton valider en laissant les champs vides j’obtiens ceci :

AjoutLivreAvecErreurs

Et si je tape des lettres dans le champs Prix, j’obtiens ceci :

AjoutLivreErreurPrix

Conclusion

Je n’ai utilisé ici qu’une petite partie des possibilités offertes mais on remarque que les Data Annotations sont vraiment très pratiques et faciles à utiliser. Il est aussi possible d’avoir des validateurs personnalisés en utilisant une classe héritant de ValidationAttribute.

Nos autres articles
Commentaires

Bonjour,

Merci pour votre explications. C’est super. Comme je viens de réalisé un formulaire, je vais essayer d’utiliser ce que vous venez d’expliquer.
Est-ce que vous connaissez un lien qui fourni toutes les annotations avec leurs descriptions ?

Merci

Laisser un commentaire

Restez au courant des dernières actualités !
Le meilleur de l’actualité sur le Cloud, le DevOps, l’IT directement dans votre boîte mail.