Полагаю, это то, что вы хотите:
Во-первых, каждый MenuItemDefinition
должен иметь уникальный Name
(первый параметр).
Во-вторых, становится очевидным, что вам нужно делать, когда вы используете правильный отступ.
До
).AddItem(
new MenuItemDefinition(
"Quotations", // "List"
L("List"),
url: "Quotation",
icon: "fa fa-table",
requiredPermissionName: PermissionNames.Pages_Quotations
) // Remove
).AddItem(
new MenuItemDefinition(
"Quotations", // "Create"
L("Create"),
url: "Quotation/CreateQuote",
icon: "fa fa-plus",
requiredPermissionName: PermissionNames.Pages_Quotations
)
)
* После 1035 *:
).AddItem(
new MenuItemDefinition(
"List",
L("List"),
url: "Quotation",
icon: "fa fa-table",
requiredPermissionName: PermissionNames.Pages_Quotations
).AddItem( // Indented
new MenuItemDefinition( // Indented
"Create", // Indented
L("Create"), // Indented
url: "Quotation/CreateQuote", // Indented
icon: "fa fa-plus", // Indented
requiredPermissionName: PermissionNames.Pages_Quotations // Indented
) // Added
)
)
SideBarNav / Default.cshtml
Для поддержки пунктов меню 3-го уровня измените эти строки :
<a href="@calculateMenuUrl(subSubMenuItem.Url)">
@subSubMenuItem.DisplayName
</a>
до:
@if (subSubMenuItem.Items.IsNullOrEmpty())
{
<a href="@calculateMenuUrl(subSubMenuItem.Url)">
@if (!string.IsNullOrWhiteSpace(subSubMenuItem.Icon))
{
<i class="material-icons">@subSubMenuItem.Icon</i>
}
<span>@subSubMenuItem.DisplayName</span>
</a>
}
else
{
<a href="javascript:void(0);" class="menu-toggle">
@if (!string.IsNullOrWhiteSpace(subSubMenuItem.Icon))
{
<i class="material-icons">@subSubMenuItem.Icon</i>
}
<span>@subSubMenuItem.DisplayName</span>
</a>
<ul class="ml-menu">
@foreach (var subsubSubMenuItem in subSubMenuItem.Items)
{
<li class="@(Model.ActiveMenuItemName == subsubSubMenuItem.Name ? "active" : "")">
<a href="@calculateMenuUrl(subsubSubMenuItem.Url)">
@subsubSubMenuItem.DisplayName
</a>
</li>
}
</ul>
}