Al codificar una aplicación MVC tradicional, ¿cuál es la mejor práctica para codificar validaciones de formularios del lado del servidor? ¿El código pertenece al controlador o a la capa del modelo? ¿Y por qué?MVC: ¿dónde implementar la validación de formularios (en el lado del servidor)?
Respuesta
De Wikipedia:
Model-view-controller (MVC) es un patrón arquitectónico usado en ingeniería de software. El uso exitoso del patrón aísla la lógica comercial de las consideraciones de la interfaz de usuario, lo que resulta en una aplicación donde es más fácil modificar la apariencia visual de la aplicación o las reglas comerciales subyacentes sin afectar a la otra. En MVC, el modelo representa la información (los datos) de la aplicación y las reglas de negocio utilizadas para manipular los datos; la vista corresponde a elementos de la interfaz de usuario, como texto, elementos de casillas de verificación, etc. y el controlador maneja los detalles que involucran la comunicación al modelo de acciones del usuario, como las pulsaciones de teclas y los movimientos del mouse.
Por lo tanto, modelo - contiene la aplicación y las reglas de negocio.
Estoy totalmente de acuerdo con Josh. Sin embargo, puede crear un tipo de capa de validación entre Controlador y Modelo para que la mayoría de las validaciones sintácticas se puedan llevar a cabo en los datos antes de que lleguen al modelo.
Por ejemplo,
La capa de validación validaría el formato de fecha, formato de cantidad, los campos obligatorios, etc ...
Así que el modelo sería puramente concentrarse en las validaciones de negocio como la cantidad de x debe ser mayor que y cantidad
Mi experiencia con MVC hasta el momento consiste en todos los rieles.
Rails hace su validación 100% en el Modelo.
En su mayor parte, esto funciona muy bien. Yo diría que 9 de cada 10 veces es todo lo que necesitas.
Sin embargo, en algunas áreas, lo que envía desde un formulario no coincide con su modelo correctamente. Puede haber algún filtrado/reorganización adicional, etc.
La mejor manera de resolver estas situaciones que he encontrado es crear objetos de modelo falso, que básicamente actúen como objetos de modelo, pero correlacionen 1-a-1 con los datos del formulario. Estos objetos de falso modelo en realidad no guardan nada, solo son un cubo para los datos con validaciones adjuntas.
Un ejemplo de tal cosa (en rieles) es ActiveForm
vez que los datos se mete en los que (y es válida) por lo general es un paso bastante simple para transferir directamente a través a sus modelos reales.
La comprobación de sintaxis básica debe estar en el control a medida que traduce la entrada del usuario para el modelo. El modelo necesita hacer la validación de datos reales.
- 1. lado del servidor MVC + lado del cliente MVC
- 2. ASP.NET Validación lado del servidor
- 3. Validación del lado del cliente ASP.NET MVC
- 4. AngularJS: la integración con la validación del lado del servidor
- 5. ¿Cómo evitar el envío de formularios al usar la validación de formularios del lado del cliente HTML5 en Opera 11?
- 6. Validación de datos del lado del servidor en Express + node.js
- 7. Archivos mínimos necesarios para implementar el lado del servidor webAPI
- 8. DDD y validación del lado del cliente
- 9. Replicar validación del lado del servidor C# en Javascript
- 10. Validación del lado del servidor con Custom DataAnnotationsModelValidatorProvider
- 11. Formulario de validación del lado del servidor Angular.js
- 12. Crear validación combinada del lado del cliente y del lado del servidor en Symfony2
- 13. ASP.NET validador propio lado del cliente y la validación del lado del servidor no disparar
- 14. mvc validación del lado del cliente para propiedades anidadas (recopilación)
- 15. Mostrar errores con Knockout JS + MVC + Validación de modelo del lado del servidor?
- 16. Validación de entrada de usuario, del lado del cliente o del lado del servidor? [PHP/JS]
- 17. ASP.Net MVC 3 Modelo JSON Enlace y validación del modelo del lado del servidor mezclado con la validación del lado del cliente
- 18. ¿Cómo usar las reglas de validación tanto del lado del cliente como del lado del servidor?
- 19. C# mvc carga de imágenes redimensionando el lado del servidor
- 20. Uso de Knockoutjs y Validación del lado del servidor en .NET MVC2
- 21. Desactivar la validación del lado del cliente en MVC 3 "cancelar" botón de enviar
- 22. Cómo escribir una validación jQuery personalizada del lado del cliente en ASP.NET MVC 2 RC?
- 23. Impedir presentaciones de formularios múltiples en MVC 3 con validación
- 24. ¿Cómo se evita la duplicación de validación en el servidor y el lado del cliente?
- 25. GWT I18N en el lado del servidor
- 26. Cómo mostrar los resultados de la validación MVC 3 del lado del cliente en el resumen de validación
- 27. ASP .NET MVC Desactivar validación del lado del cliente en el nivel por campo
- 28. Línea de comando del lado del servidor
- 29. ASP.NET: Sincronización de reglas de validación del lado del cliente y del servidor
- 30. Localizando mensajes de validación en el lado del cliente mediante jQuery en ASP.net MVC