ASP.NET MVC “Componenti”
-
09-06-2019 - |
Domanda
Esiste un modo per avere una parte della pagina che venga visualizzata come una piccola sottopagina, come i componenti?
Ad esempio, se ho un carrello su tutte le mie pagine?
Soluzione
Se vuoi che esegua il rendering di un'altra azione del controller, come componente, per ottenere l'incapsulamento, usi.
Html.RenderAction
utilizza routedata per portarti lì, ha i propri viewdata e un tipo di mini ciclo di vita
Altri suggerimenti
Utilizzando l'anteprima 5, Html.RenderPartial è il tuo uomo, puoi eseguire il rendering dei sottocontrolli e passare loro i tuoi viewdata, o un modello arbitrario, e una nuova combinazione di viewdata.
Puoi creare un ActionFilter che modifica i dati della vista.In questo modo, puoi decorare ogni azione che restituisce il partial con il filtro dell'azione.Dai un'occhiata al mio post:
Stai cercando sottocontrollori.Questa implementazione è il modo migliore per fare ciò di cui stai parlando.
Modificare:Ne ho appena parlato qui: http://mhinze.com/subcontrollers-in-aspnet-mvc/