Lors du codage d'une application MVC traditionnelle, quelle est la meilleure pratique pour coder les validations de formulaire côté serveur? Le code appartient-il au contrôleur ou au calque de modèle? Et pourquoi?MVC - où implémenter la validation de formulaire (côté serveur)?
Répondre
de Wikipédia:
Model-view-controller (MVC) est un modèle architectural utilisé en génie logiciel. L'utilisation réussie du motif isole la logique métier des considérations d'interface utilisateur, ce qui entraîne une application dans laquelle il est plus facile de modifier l'aspect visuel de l'application ou les règles métier sous-jacentes sans affecter l'autre. Dans MVC, le modèle représente l'information (les données) de l'application et les règles métier utilisées pour manipuler les données; la vue correspond à des éléments de l'interface utilisateur tels que du texte, des cases à cocher, etc. et le contrôleur gère les détails impliquant la communication au modèle d'actions de l'utilisateur telles que les frappes au clavier et les mouvements de la souris.
Ainsi, modèle - il contient l'application et les règles métier.
Je suis complètement d'accord avec Josh. Cependant, vous pouvez créer une sorte de couche de validation entre le contrôleur et le modèle afin que la plupart des validations syntaxiques puissent être effectuées sur les données avant qu'elles ne soient modélisées.
Par exemple,
La couche de validation validerait le format de date, format montant, les champs obligatoires, etc ...
Alors que le modèle se concentrer uniquement sur les validations d'affaires comme le montant de x doit être supérieur à y montant.
Mon expérience avec MVC consiste jusqu'à présent entièrement en rails.
Rails fait c'est la validation 100% dans le modèle.
Pour la plupart, cela fonctionne très bien. Je dirais 9 fois sur 10 c'est tout ce dont vous avez besoin.
Toutefois, il existe des zones dans lesquelles ce que vous soumettez à partir d'un formulaire ne correspond pas correctement à votre modèle. Il peut y avoir un filtrage/réarrangement supplémentaire, etc.
La meilleure façon de résoudre ces situations que j'ai trouvé est de créer des objets de faux-modèle, qui agissent essentiellement comme des objets Modèle mais mappent 1-à-1 avec les données de formulaire. Ces objets faux-modèles ne sauvegardent rien, ils ne sont qu'un seau pour les données avec des validations attachées.
Un exemple d'une telle chose (dans des rails) est ActiveForm
Une fois les données pénètre dans les (et est valide) il est généralement une étape assez simple de transférer directement sur vos modèles réels.
La vérification de syntaxe de base doit être dans le contrôle car elle traduit l'entrée de l'utilisateur pour le modèle. Le modèle doit effectuer la validation des données réelles.
- 1. Validation complète côté serveur
- 2. validation côté serveur
- 3. Comment [et où] implémenter une validation en utilisant ModelBinder
- 4. ValidationSummary avec côté client et validation côté serveur
- 5. Prévention du double-clic avec la validation côté serveur
- 6. options de validation d'entrée dans le formulaire ASP.NET MVC 1.0+
- 7. Validation côté serveur puis publication dans le script distant
- 8. ASP.NET personnalisé validateur côté client et serveur de validation de côté pas de tir
- 9. RegisterOnSubmitStatement après la validation côté client
- 10. validation côté serveur, comment passer des erreurs à afficher dans MVC?
- 11. xVal Validation côté client avec ajax, RenderPartial formulaire
- 12. traitement côté serveur ASP.NET MVC de résultats de recherche Google
- 13. ASP.NET MVC - DataAnnotations pour la validation client
- 14. Portlets - Garder la session en vie du côté serveur
- 15. Validation de formulaire dans django
- 16. Scripts Eval dans la propriété de contrôle côté serveur
- 17. Validation de formulaire Rails
- 18. Validation de formulaire multipage avec php
- 19. Test de la capacité Flash côté serveur
- 20. Validation de formulaire XML?
- 21. Côté serveur inclure HTML externe?
- 22. Événements côté serveur JavaScript
- 23. Attraper les erreurs côté serveur à l'intérieur de la soumission de formulaire Ajax
- 24. recherche de ClientID côté client ou côté serveur?
- 25. Génération de la validation côté client à partir de la validation LLBLGen
- 26. javascript validation du formulaire sur le serveur/local
- 27. Commentaires côté serveur dans asp.net (côté HTML)
- 28. Equivalent côté serveur de HttpContext?
- 29. Solutions de cartographie côté serveur
- 30. validation du formulaire jquery avec deux messages de validation