Mam _Layout.cshtml najwyższego poziomu, który wygląda mniej więcej tak: "sub-layouts"W MVC Razor, jak zrobić RenderSection zdefiniowany poniżej pod-layout?
<html>
<head>
@RenderSection("Header", required: false)
</head>
<body>
@RenderSection("LeftPane", required: false)
@RenderSection("RightPane", required: false)
@RenderBody()
</body>
</html>
to mam dwa Jedna definiuje tylko sekcję LeftPane, druga definiuje zarówno LeftPane, jak i RightPane. Te pod-layouty są nazywane _LeftPane.cshtml i _LeftPlusRightPane.cshtml i mają układ Layout na "_Layout.cshtml."
Następnie w każdym pliku View .cshtml ustawiam układ na _LeftPane.cshtml lub _LeftPlusRightPane.cshtml, w zależności od tego, co chcę pokazać na stronie.
Wszystko działa dobrze. Problem dotyczy nowej sekcji "Nagłówek" dodanej w części dokumentu dotyczącej dokumentu <head>
. Ta sekcja nie jest zdefiniowana w pod-układach, lecz w rzeczywistych widokach. Kiedy próbuję coś zobaczyć w ten sposób, pojawia się błąd:
Następujące sekcje zostały zdefiniowane, ale nie zostały wyrenderowane na stronie układu "~/Views/Shared/_LeftPlusRightPane.cshtml": "Header".
Nie chcę renderować sekcji Nagłówek w sublayouts, chcę renderować go w pliku _Layout.cshtml. Jak mogę "przejść przez" zdefiniowaną sekcję Nagłówek z widoku niskiego poziomu, poprzez pod-układy, aż do najwyższego _Layout?
Czy możesz wkleić, jak wyglądają twoje sekcje? Myślę, że po prostu nie owijacie sekcji w poszczególne widoki. – Fourth
Jedyną sekcją, z którą mam problem jest nowa sekcja Nagłówek. Przykład jednego z moich widoków: @section Header { } –