diría que a menudo es necesaria para validar a todos los niveles :)
que estaba pensando un rato sobre lo siguiente: la validación de entrada
- usuario: definitivamente en el controlador, no en cualquier tipo de modelo. Ejemplo: Captcha.
- Ver datos relacionados validados en ViewModel (no en el ViewModel, sino en el ViewModel). Ejemplos: Confirmación de la contraseña, Correo electrónico requerido.
- La validación de reglas de negocio definitivamente entra en la validación del modelo. Ejemplos: Correo electrónico requerido, El cupón de descuento debe ser válido.
- Validación de caso de uso potencial (historia, escenario, etc.). No valida los atributos, pero valida la corrección de todo el proceso. Debe ir a la validación del modelo (o mejor en una capa separada). Ejemplo: Solo se pueden obtener 3 artículos de forma gratuita durante una semana si no se ha realizado ningún pedido para el período dado.
NOTA: I incluyó el Obligatorio Email en tanto 2 y 3, ya que a menudo depende de donde pertenece.
Si el correo electrónico solo desempeña un papel informativo, la validación se puede relajar y llevarlo al modelo de visualización. Si el correo electrónico es un requisito importante para la aplicación, definitivamente es la validación del modelo.
La cuarta cosa no tiene nada que ver con la validación tal como lo entendemos.
Pero también se debe aplicar. Por lo tanto, su resultado debe mostrarse al usuario.
Básicamente, los 4 tipos de validación pueden usar la misma infraestructura. Pero la implementación depende de:) ...
Cheers,
Dmitriy.
mvvm tag? El modelo de vista de MVC no son los modelos de vista del patrón MVVM. –
MVVM se basa en gran medida en el patrón MVC, pero le agradecería que explicara su comentario (con algunos enlaces, tal vez). –