Biorąc hierarchia odsłon: Index.cshtml -> _Layout.cshtml -> _MasterLayout.cshtml:MVC: Jak korzystać z sekcji (renderowania) z widoku nadrzędnego (głównego) (widok układu)?
_MasterLayout.cshtml - zbiór odcinków, które chcę użyć w układzie master (poniżej)
@section javascriptLinks {
<script src="~/client/vendor/require-jquery.js" data-main="~/client/main.js" type="text/javascript"></script>
}
@RenderBody()
_Layout.cshtml - rzeczywiste miejsce układ mistrz
@{
Layout = "~/Views/Shared/_MasterLayout.cshtml";
}
<!doctype html>
<html>
<!-- actual site layout here -->
<body>
@RenderBody()
@RenderSection("javascriptLinks")
</body>
</html>
Index.cshtml - niektóre konkretne znaczniki specyficzne dla strony
Pomysł dzielenia _Layout.cshtml i _MasterLayout.cshtml to dzielenie kodu. Mam rodzaj biblioteki/framework i _MasterLayout należy do tej biblioteki. A _Layout.cshtml to konkretny układ strony głównej aplikacji.
Niestety ten schemat nie działa. Podczas renderowania _Layout.cshtml nie zobaczy sekcji od _MasterLayout.cshtml.
Czy istnieje sposób korzystania z sekcji w takim przypadku (pobieranie ich od rodzica Nie widok z widoku dziecka)?
Jednym możliwym rozwiązaniem, jakie widzę, jest tworzenie oddzielnych stron dla każdej sekcji w moim _MasterLayout.cshtml i wywołanie @RenderPage w _Layout. Ale chciałbym mieć jeden zasób udostępniania (_MasterLayout.cshtml).
to sens, ale w istocie staje się nienaturalny _Layout.cshtml (zamiast znaczniki html muszą zawierać zestaw deklaracji @sekcji). Chciałbym, aby _Layout.cshtml zawierał cały układ strony i importował tylko "standardowe" części (tj. Sekcje) z jakiegoś (łatwo współdzielonego) źródła. – Shrike