2009-05-03 17 views
7

In tutti i diagrammi MVC che ho visto, c'è sempre una connessione tra la vista e il modello, indicando che la vista ha accesso al modello.ASP.net MVC: in che modo la vista accede al modello?

Mi chiedo solo: quando si applica? Al momento, ho il mio Controller Action che contiene un parametro da QueryString, interrogare il modello per ottenere MyObjectViewData e quindi restituire una vista, passando in MyObjectViewData. Quindi essenzialmente ho il controller in mezzo.

Questo sembra essere l'approccio logico, ma non si adatta all'ipotesi che Modello e Vista abbiano business insieme.

Quali sono le situazioni tipiche in cui interagiscono senza il controller?

risposta

6

In MVC (sul Web) la vista interagisce direttamente con il modello rendendo una particolare istanza di un'entità modello. Agisce solo indirettamente su su il Modello tramite il Controller. In un'implementazione non Web è possibile utilizzare il pattern observer per registrare i gestori con gli elementi View che possono richiamare metodi nel modello che aggiornano il modello senza l'interazione con il controller. ASP.NET MVC e altre implementazioni basate sul Web sono più liberamente accoppiate rispetto alle implementazioni non web. Secondo me, questa è una buona cosa. Tende a realizzare un'implementazione di Controller molto più grande e devi stare attento a mantenere la separazione delle preoccupazioni tra il Controller e il Modello.

implementazioni Web probabilmente dovrebbe essere elaborato senza il collegamento indiretto dal modello alla vista in quanto non è possibile comunicare veramente tra i due, senza il controller. Suppongo che si possa sostenere che un servizio web potrebbe fornire questa connessione, ma lo considererei solo un'altra forma di controller.

Problemi correlati