Pregunta

Cuando la validación debe residir cuando se utiliza con ViewModels MVC (MVVM), en el modelo o el modelo de vista? (O ambos o ninguno)? ¿Y por qué? Traigo esto a colación especialmente a la luz de V2 de ASP.NET MVC que saldrá pronto.

¿Qué hay de validación / complejo de costumbre?

¿Fue útil?

Solución

Cualquier validación específica del negocio debe estar en el modelo. Ninguna validación específica sitio web podría tener lugar tanto en el modelo y / o modelo de vista. De esta manera su lógica de negocio (Modelos) puede moverse detrás de una interfaz diferente (Windows, Web Forms, etc.) y su validación permanecerá intacta.

Otros consejos

Yo diría que a menudo es necesaria para validar a todos los niveles:)

Estaba pensando un rato sobre lo siguiente:

  1. validación de entrada del usuario: definitivamente en el controlador, no en cualquier tipo de modelo. Ejemplo:. Captcha
  2. Relacionado con Ver datos validados en el modelo de vista (no en el modelo de vista, sino en el modelo de vista). Ejemplos:. Confirmación de la contraseña , requerida correo
  3. validación de reglas de negocio definitivamente entra en la validación del modelo. Ejemplos:. requerida correo , Cupón de descuento debe ser válida
  4. Potencialmente de casos de uso (historia, escenario, etc.) de validación. No valida los atributos, pero valida la exactitud de todo el proceso. En caso de ir al modelo de validación (o mejor en una capa separada). Ejemplo: Sólo 3 artículos se puede obtener de forma gratuita durante una semana si hay orden ha sido puesto para el periodo indicado .

NOTA: I incluyó el Email Requerido en tanto 2 y 3, ya que a menudo depende de donde pertenece
. Si el correo electrónico juega un papel meramente informativa - entonces la validación puede estar relajado y empujarlo a la vista-modelo. Si el correo electrónico es un requisito importante para la aplicación - es sin duda la validación del modelo.

La cuarta cosa tiene realmente nada que ver con la validación tal como la entendemos.
Pero también se debe aplicar. Por lo tanto su resultado se debe mostrar al usuario.

Básicamente los 4 tipos de validación pueden utilizar la misma infraestructura. Sin embargo, la implementación depende:) ...

Saludos, España Dmitriy.

Modelo. Su validación debe estar en su capa de negocio. Su modelo de vista debe ser sólo para obtener su configuración de vista.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top