2010-03-22 6 views
1

J'utilise des annotations de données avec ASP.NET MVC 2 comme démontré dans ce post:champs sélectionnés uniquement Validating en utilisant ASP.NET MVC 2 et annotations de données

http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx

Tout fonctionne bien lors de la création/mise à jour une entité où toutes les valeurs de propriété requises sont spécifiées dans le formulaire et valides.

Cependant, que se passe-t-il si je veux seulement mettre à jour certains des champs? Par exemple, disons que j'ai une entité de compte avec 20 champs, mais je veux seulement mettre à jour le nom d'utilisateur et le mot de passe? ModelState.IsValid valide contre toutes les propriétés, qu'elles soient référencées dans le formulaire soumis ou non.

Comment puis-je l'obtenir pour valider seulement les champs qui sont référencés dans le formulaire?

Répondre

2

La pratique recommandée consiste à utiliser un modèle spécifique à chaque vue. Dans votre cas, ceci serait un modèle avec seulement des propriétés de nom d'utilisateur et de mot de passe. Lorsque l'utilisateur soumet le formulaire, vous mappez les propriétés à votre objet de domaine réel dans le contrôleur. Pour cela j'utilise Automapper pour simplifier le mapping. Cela signifie que vous devrez définir vos règles de validation dans chaque modèle de vue.

+0

Merci. Automapper annule-t-il le besoin de repéciser les règles de validation dans le modèle spécifique à la vue? –

+0

Non, vous devrez toujours spécifier les règles de validation dans les modèles spécifiques à votre vue. –

+0

Des échantillons pour cet automapper? –

Questions connexes