Sto usando _viewstart.cshtml per assegnare automagicamente lo stesso layout di rasoio alle mie viste.
È un file semplice morto nella radice della mia cartella Views che assomiglia a questo:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
È più ASCIUTTO che aggiungere la direttiva @Layout a ogni singola vista.
Tuttavia, ciò rappresenta un problema per le viste parziali di Razor , poiché eseguono il contenuto di _viewstart.cshtml e pertanto si assegnano erroneamente un layout, il che le rende, ehm, non più parziali.
Ecco un ipotetico progetto che mostra il file _viewstart.cshtml, il file condiviso _layout.shtml e una vista parziale ("AnonBar.cshtml").
Attualmente, il modo in cui mi sto aggirando è aggiungendo la seguente riga a ogni vista parziale:
@{
Layout = "";
}
Questo sembra il modo sbagliato di indicare una vista come parziale in Razor. (Si noti che a differenza del motore di visualizzazione dei moduli Web, l'estensione del file è la stessa per le viste parziali.)
Altre opzioni che ho considerato ma che sono anche peggio:
- Mettendo tutte le viste parziali in una cartella comune, in modo che possano condividere un _viewstart.cshtml comune. Ciò rompe la convenzione delle viste che si trovano nella stessa cartella del loro controller.
- Non usare viste parziali.
È qualcosa che viene ancora messo a punto dal team del motore di visualizzazione Razor o mi manca un concetto fondamentale?