2009-05-03 14 views
7

En todos los diagramas de MVC que he visto, siempre hay una conexión entre la Vista y el Modelo, lo que indica que la Vista tiene acceso al Modelo.ASP.net MVC: ¿cómo accede la vista al modelo?

Me pregunto: ¿Cuándo se aplica esto? Por el momento, tengo mi acción de controlador tomando un parámetro de QueryString, consulto el modelo para obtener MyObjectViewData, y luego devuelvo una vista, pasando MyObjectViewData. Así que esencialmente tengo el controlador en el medio.

Este parece ser el enfoque lógico, pero no se ajusta a la suposición de que Model and View tienen negocios juntos.

¿Cuáles son las situaciones típicas en las que interactúan sin el controlador?

Respuesta

6

En MVC (en la web), la vista interactúa directamente con el modelo representando una instancia particular de una entidad de modelo. Solo actúa indirectamente en el Modelo a través del Controlador. En una implementación no web puede usar el patrón de observador para registrar manejadores con elementos de Vista que pueden invocar métodos en el Modelo que actualiza el Modelo sin interacción del Controlador. ASP.NET MVC y otras implementaciones basadas en la web se acoplan de forma más flexible que las implementaciones que no son web. En mi opinión, esto es algo bueno. Tiende a hacer una implementación del Controlador mucho más gorda y debe tener cuidado de mantener la separación de las preocupaciones entre el Controlador y el Modelo.

Las implementaciones web probablemente deberían dibujarse sin la conexión indirecta del Modelo a la Vista, ya que no se puede comunicar realmente entre las dos sin el Controlador. Supongo que se podría argumentar que un servicio web podría proporcionar esta conexión, pero lo consideraría como una forma más de controlador.

Cuestiones relacionadas