Мы используем Sitefinity 11 и MVC. Мы пытаемся использовать только один шаблон для основных заголовочных страниц, которые находятся прямо под корнем сайта. В этом шаблоне мы намереваемся использовать вертикальную панель навигации (используя включенный виджет Sitefinity navbar, настроенный на вертикальное представление, его Bootstrap 4), который будет располагаться в левой части страницы.
Мы хотим, чтобы навигация отображала самую верхнюю страницу этого раздела (которую мы включили, установив «ShowParentPage» в True, и отображая дочерние страницы до 3-х уровней глубиной (включая верхнюю страницу ... Дочерние страницы). Хитрость заключается в том, что мы хотели бы, чтобы он оставался прежним, даже когда пользователь переходит на одну из дочерних страниц и всегда показывает этот верхний уровень с двумя подуровнями. Для встроенных функций нет это в настоящее время, и ближайший вариант для использования - установить виджет так, чтобы он всегда показывал текущую страницу и дочерние элементы.
Под главной страницей будет только три или четыре страницы верхнего уровня, поэтому, если нажать толчок, мы могли бы создать разные шаблоны для каждого раздела сайта, а затем просто установить виджет навигации на всегда по умолчанию используется верхняя страница этого раздела, которая является еще одним встроенным параметром в виджете навигации, но, похоже, это приведет к дублированию усилий.
Я пытался изменить HTML-представление NavigationView.Vertical бритвы для достижения желаемого результата, но мне не повезло. Я думаю, что если бы я мог проверить, имеет ли родительская страница или родительская родительская страница определенный заголовок страницы (который должен оставаться довольно статичным с течением времени, хотя да, я знаю, что это может привести к риску имени страницы изменено), затем установите его в качестве активного узла, а затем сделайте так, чтобы код делал то, что он уже делает, то есть просматривал дочерние страницы и записывал их в меню навигации.
Это фрагмент кода по умолчанию в представлении:
@model Telerik.Sitefinity.Frontend.Navigation.Mvc.Models.INavigationModel
<div class="@Model.CssClass">
<nav>
<ul class="nav flex-column navbar-child-custom">
@foreach (var node in Model.Nodes)
{
<li class="nav-item">
<a class="nav-link @GetClass(node)" href="@node.Url" target="@node.LinkTarget">@node.Title</a>
@RenderSubLevelsRecursive(node)
</li>
}
</ul>
</nav>
</div>
Если бы я мог каким-то образом установить этот узел в цикле for-each на самую верхнюю родительскую страницу, то я мог бы просто позволить этому сделать свое дело, и это сработало бы, но я не знаю подходящего способа сделать это ,
Любая помощь или предложения очень ценятся!
РЕДАКТИРОВАТЬ: я приложил несколько изображений, которые показывают иерархию страниц (которые вы можете видеть как «Члены, пенсионеры и работодатели» в качестве трех страниц верхнего уровня, на которые я ссылаюсь), выбор, используемый в шаблоне, а затем также результат на странице, когда вы находитесь на странице участников, а также то, что происходит с левой навигационной панелью, когда вы находитесь на странице пенсий, которая находится только в разделе «Участники». В этом случае мы хотим, чтобы навигация оставалась такой же, как если бы вы были на странице участников.
Иерархия
Выбор
Просмотр страницы участников
Просмотр страницы пенсии (дочерний элемент)