Мы постепенно переносим проект на основе Spark для использования Razor, и я столкнулся с чем-то, на что, похоже, не могу найти ответ.
Моя строка в моем Spark-мастере вызывает подпрограмму. Выглядит так:
<Sidebar>
<segment name="header">
<div> <!-- header content--> </div>
</segment>
<segment name="content">
<div> <!-- content content--> </div>
</segment>
</Sidebar>
Боковая искра выглядит так
<div id="sidebar" >
<div class="header">
<render segment="header">
<!-- placeholder -->
</render>
</div>
<div class="ui-layout-content content">
<render segment="content">
<!-- placeholder -->
</render>
</div>
Это делаетс содержанием из первого раздела отображается в макете из второго.Есть ли способ, как я могу воссоздать это с помощью Razor.Я вижу, что мне нужно использовать Partials, но я не вижу, как передать содержимое в подпредставление боковой панели.
По сути, я пытаюсь воссоздать функциональность, которую Spark вызывает Сегменты (или ранее разделы) http://sparkviewengine.com/reference/elements#segmentpreviouslyknownassection
РЕДАКТИРОВАТЬ: дополнительная информация.У меня есть Index.cshtml, который получает его макет из Application.cshtml.Здесь у меня есть код разметки, который входит в частичную часть Sidebar.cshtml.
Если я добавлю put @section header
(который отображается в Sidebar.cshtml) в моем файле Index.cshtml, он не распознает его как допустимый раздел.У меня есть @RenderSection("header", false)
в моем файле Sidebar.cshtml.
Как связать эти 2 вместе?
Итак, моя иерархия выглядит следующим образом
Application.cshtml - глобальный макет страницыIndex.cshtml - макет страницы, включая содержимое для боковой панелиSidebar.cshtml - Шаблон / раскладка содержимого боковой панели из Index.cshtml.
Например,
в Index.cshtml
@RenderPage("Sidebar")
@section SidebarHeader { <!--Title or something --> }
@section SidebarContent { <!--Content --> }
Затем в Sidebar.cshtml
<div class="header">
@RenderSection("SidebarHeader", false)
</div>
<div class="ui-layout-content content">
@RenderSection("SidebarContent", false)
</div>
Идея в том, что я могу иметь шаблонво вложенном представлении, которое заполняется содержимым представления.Это означает, что я могу шаблонировать области для других страниц сайта.Например.Содержимое боковой панели на другой странице будет иметь тот же формат, но другой контент.