Ho un sito con una barra di navigazione definita nel layout. La barra di navigazione viene utilizzata in diverse viste del sito e presenta alcuni contenuti dinamici generati da un paio di query nel database.ASP.NET MVC: utilizzare Html.Partial o Html.Action?
Mi chiedo quale sia la procedura migliore per eseguire il rendering di questo menu (definito in una vista parziale).
Per quanto ne so che posso farlo in due modi, con alcuni vantaggi e svantaggi per ognuno:
Utilizzando Html.Action: + E 'completamente indipendente dal punto di vista che sta utilizzando il layout - Aggiunge una richiesta in più per il rendering di una sezione della pagina - Sto aggiungendo un metodo Action che restituisce una vista parziale che non viene chiamata da Ajax.
Utilizzando Html.Partial: + una semplice richiesta di rendere l'intera vista - Ogni modello vista deve contenere le informazioni necessarie per la barra di navigazione
Vorrei davvero apprezzare le vostre intuizioni su questo dato che ho diversi scenari come questo sul mio sito e non sono sicuro quale sia il migliore.
Grazie!
Anche se è vero che esegue una sola richiesta HTTP, è anche vero che il sovraccarico del rendering di un'azione supera quello del rendering parziale. –
@NathanTaylor, è vero. C'è un sovraccarico che supera quello del rendering parziale. Ma questo overhead è così mooooolto trascurabile rispetto a tutti i benefici che si ottengono dall'usare azioni da bambini che dovremmo semplicemente accettarlo. Voglio dire, si ottiene separazione delle preoccupazioni, si ottiene il codice pulito, si ottiene il caching che esalta le prestazioni di rendering parziale, quindi, si, usa Html.Action. –
Sicuramente non sono d'accordo, sto solo mettendo in evidenza i fatti. Html.Azione FTW. –