Sono ancora un po 'confuso da come deve funzionare MVC.Real World MVC - Gestione dei moduli
Diciamo che ho un sito Web che vende widget. Ho una pagina di elenco, /widgets/list
e una pagina di prodotto /widgets/product/123
.
Entrambi possono utilizzare il controller widget
e chiamare i metodi list
e product
- abbastanza semplici finora. Diciamo che ho anche diversi altri controller per varie cose.
Ora aggiungo una casella di iscrizione alla newsletter nell'intestazione, ad esempio su ogni pagina del sito. Come funziona? Ho l'idea che debba essere inviata a /newsletter/signup
Ma cosa succede se c'è un errore (ad esempio non hai inserito correttamente il tuo indirizzo email)? Dovrebbe mostrare la pagina in cui ti trovavi (ad esempio /widgets/list
) ma il controller newsletter
deve essere eseguito. Il controller widget
non conosce il controller newsletter
, quindi non posso inserire il codice lì ... Come funziona?
Modifica: No AJAX per favore - lo capisco più facilmente. Considera questo il fallback quando javascript è disabilitato.
Edit 2: Alcune esempi o tutorial che coprono questo genere di cose sarebbe molto apprezzato
Edit 3: E 'ammissibile per una vista da chiamare un'azione? Ad esempio l'intestazione potrebbe chiamare Newsletter->index()
Se ho un sito Web esistente con 10 controller, ciascuno con 5 azioni, non significa che dovrei modificare 50 funzioni se ho aggiunto una registrazione alla newsletter nell'intestazione? – Greg
Beh, questa sarebbe l'eccezione in cui pubblica una pagina separata. La maggior parte dei moduli non appare su più pagine, solo cose come newsletter, login e forse registrazione. Nel complesso, quanto sopra è piuttosto efficace. – ryeguy