33 votes

IValidatableObject dans MVC3 - validation côté client

Avec MVC3 vous avez deux nouveaux mécanismes pour l'ajout de validation personnalisée. Ce sont (1) la sous-classe ValidationAttribute ou (2) de mettre en œuvre Ivalidatableobjet.

Le ValidationAttribute vous permet d'ajouter la validation côté client relativement simplement par la mise en œuvre de IClientValidatable (et l'enregistrement d'une nouvelle carte et de la méthode via jQuery).

Ivalidatableobjet est plus adapté à des exigences en matière de validation lorsque la réutilisation n'est pas une option. Il se traduit également dans slighlty plus simple de code. Par conséquent, il serait mon choix pour un certain nombre de scénarios. Malheureusement, je ne vois pas un moyen facile de mise en œuvre de la validation côté client à l'aide de cette méthode.

Donc la question est ce qui me manque et comment obtenez-vous JS de validation lors de l'utilisation de Ivalidatableobjet?

23voto

Paul Hiles Points 3887

Comme je n'ai pas (valide) de réponse ici, j'ai demandé à un couple de personnes de chez Microsoft et ils ont confirmé qu'il n'était pas possible à l'heure actuelle.

Brad Wilson:

À l'époque, seul le niveau de la propriété des validateurs peuvent émettre côté client la validation (comme les lignes beaucoup mieux avec l'idée de l'entrée validation sous la forme du navigateur... il n'y a pas de "modèle" pour parler d', à partir du navigateur de point de vue).

Stuart Poireaux:

Je ne crois pas que vous pouvez brancher jusqu'à la validation sur le client avec Ivalidatableobjet

4voto

Jakub Konecki Points 28852

http://weblogs.asp.net/scottgu/archive/2010/07/27/introducing-asp-net-mvc-3-preview-1.aspx http://blogs.msdn.com/b/stuartleeks/archive/2010/07/28/asp-net-mvc-adding-client-side-validation-to-validatepasswordlengthattribute-in-asp-net-mvc-3-preview-1.aspx

ASP.NET MVC 3 satisfait maintenant IValidateObject l'interface lors de la modèle de liaison (en plus de toutes les d'autres approches de validation déjà pris en charge avec MVC 2), et récupérer les erreurs de validation et automatiquement drapeau/highlight touchés les champs à l'intérieur d'une vue à l'aide de la construit-dans le formulaire HTML helpers.

ASP.NET MVC 3 introduit également un nouveau IClientValidatable interface permet ASP.NET MVC pour découvrir à l'exécution si un validateur a support pour la validation du client. Cette l'interface a été conçu de sorte qu'il peut être intégré avec une variété de des cadres de validation. MVC 3 introduit une nouvelle IMetadataAware interface qui simplifie la façon dont vous pouvez contribuer à la ModelMetadata processus de création.

0voto

edosoft Points 7783

Cet article décrit un moyen d'accéder à l'objet conteneur dans la validation côté client dans ASP.NET MVC. Vous pouvez probablement l'utiliser pour commencer à utiliser votre propre validation côté client

0voto

Essayez l'interface IClientValidatable .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X