MVC: inserimento di una vista da un SubController al relativo controller padre

1

Ho 2 controller: 1 controller di primo livello, MainController e SubController , che MainController ha un'istanza di e controlli. Il SubController ha un Subview che entra dentro MainView come un elemento web secondario.

Che cos'è un buon modo per inserire SubView in MainView ? Posso pensare a:

1) Posso dare SubController e SubView un riferimento di MainView e aggiungerlo ad esso nel Subview

2) Restituisce l'html dalla funzione di rendering SubView a SubController , che ritorna a MainController - > MainView - > render

O c'è un modo molto migliore?

    
posta roverred 23.12.2014 - 21:29
fonte

1 risposta

1

Per la separazione più pulita tra Main e Sub View / Controller, la combinazione SubView / SubController non dovrebbe conoscere l'esistenza di MainView e MainController . In questo modo lasci aperta la possibilità di riutilizzare SubView / SubController altrove nell'applicazione.

Esistono diversi modi per eseguire il rendering delle sottoview, ciascuna con vantaggi e svantaggi.

La cosa più importante da tenere a mente è che se si genera il codice HTML sul server, i componenti View non dovrebbero sapere (né preoccuparsi) se il loro output è inviato direttamente al browser del client o se sarà incorporato in una vista più ampia.
Potresti anche dire che ogni vista è in definitiva incorporata in una vista principale che utilizza solo tag nell'intestazione HTML e negli elementi del corpo.

Quindi puoi lasciare che i componenti del controller rendano le loro sotto-viste o puoi farlo nei componenti View.
La mia preferenza è di farlo nella vista, dato che è tutto collegato allo schermo, che è responsabilità dei componenti View di MVC. D'altra parte, ciò si traduce in un po 'di logica di programmazione nella vista, che molti non sono molto constrongvoli e che non è così ben supportato dai motori di template che sono comunemente usati per generare viste.

    
risposta data 28.12.2014 - 17:57
fonte

Leggi altre domande sui tag