Ho un _Layout.cshtml di livello superiore che sembra qualcosa di simile:In Rasoio MVC, come si fa una RenderSection definita sotto un sotto-layout?
<html>
<head>
@RenderSection("Header", required: false)
</head>
<body>
@RenderSection("LeftPane", required: false)
@RenderSection("RightPane", required: false)
@RenderBody()
</body>
</html>
allora ho due "sotto-layout." Uno definisce solo la sezione LeftPane, l'altro definisce sia un LeftPane che un RightPane. Questi sotto-layout sono chiamati _LeftPane.cshtml e _LeftPlusRightPane.cshtml e hanno il layout impostato su "_Layout.cshtml".
Quindi in ciascun file Visualizza .cshtml, ho impostato il layout su _LeftPane.cshtml o _LeftPlusRightPane.cshtml, a seconda di cosa voglio visualizzare sulla pagina.
Che tutto funzioni correttamente. Il problema è con la nuova sezione "Intestazione" che ho aggiunto nella parte <head>
del documento. Questa sezione non è definita nei layout secondari, ma nelle Visualizzazioni reali. Quando provo a visualizzare qualcosa in questo modo, viene visualizzato l'errore:
Le seguenti sezioni sono state definite ma non sono state visualizzate per la pagina di layout "~/Views/Shared/_LeftPlusRightPane.cshtml": "Intestazione".
Non voglio eseguire il rendering della sezione Intestazione nei sottofinestri, voglio renderlo disponibile nel file _Layout.cshtml. Come faccio a "passare attraverso" la sezione Intestazione definita dalla vista di basso livello, attraverso i layout secondari, fino alla parte superiore _Layout?
È possibile incollare l'aspetto delle sezioni? Penso che non stai semplicemente avvolgendo le sezioni nelle singole viste in modo corretto. – Fourth
L'unica sezione con cui ho un problema è la nuova sezione Intestazione. Un esempio di uno dal mio punto di vista: Intestazione @section { } –