Quindi stavo cercando un buon modo in ASP.Net Core per creare alcuni "controlli" che rendessero visibili in una vista. Finora ho trovato ci sono 3 opzioni, e volevo avere un feedback su di loro.
-
ViewComponents: sono come mini controller e usano metodi come le azioni per eseguire il rendering da una pagina del rasoio (vista). Credo che possano avere una logica autonoma quindi non c'è alcuna dipendenza da alcun modello di visualizzazione genitore.
-
Cartelle EditorTemplate / DisplayTemplate: esistono in "Visualizzazioni / Condivisi /" e possono essere trascinati in una vista passando una proprietà del modello (usando
DisplayFor()
oEditorFor()
). -
@inject per ASP.Net Core: consente di iniettare un tipo in una vista (non ho idea se sia possibile associare una vista parziale?).
-
Tralascio la possibilità di includere viste parziali direttamente, poiché non è il mio intento per il sistema di controllo su cui sto eseguendo il porting.
-
Tag Helpers - è possibile iniettare il contesto di visualizzazione corrente e creare controlli anche da questi.
In una vecchia applicazione ASP.NET MVC avevo alcuni controlli resi dai template (# 2). Tuttavia, per .Net Core, sto pensando di utilizzare eventualmente ViewComponents (che sembrano più potenti) per il rendering delle visualizzazioni del rasoio associate (i controlli in pratica si limitano a racchiudere le visualizzazioni del rasoio). Per il momento sperimenterò la conversione in ViewComponents, ma mi piacerebbe qualche consiglio in merito, grazie.