Правильно ли, что установка порядка при добавлении MenuItemDefinition на самом деле не имеет никакого значения для работающего приложения, и что это свойство находится здесь с ожиданием того, что я реализую поведение, как я сделал в Default .cs html?
Да, шаблоны (начиная с версии 5.2.0) не используют и не осуществляют упорядочение элементов меню пользователя.
Я предлагаю реализовать метод расширения для легко изменить порядок в проекте.
public static IOrderedEnumerable<UserMenuItem> OrderByCustom(this IEnumerable<UserMenuItem> menuItems)
{
return menuItems
.OrderBy(menuItem => menuItem.Order)
.ThenBy(menuItem => menuItem.DisplayName);
}
Относительно версий : Вы используете v5.1.x и ниже . Начиная с v5.2.0, шаблон был перенесен для использования AdminLTE 3 вместо AdminBSB для пользовательского интерфейса MVC, поэтому следующие изменения несовместимы.
v5.2 +
У меня есть представил PR для реализации заказа: aspnetboilerplate / module-zero-core-template # 510
var orderedMenuItems = Model.MainMenu.Items.Where(x => x.IsVisible).OrderByCustom().ToList();
var subMenus = Model.Items.Where(x => x.IsVisible).OrderByCustom().ToList();
Файлы изменены:
- Web .Mvc / Views / Shared / Components / SideBarMenu / Default.cs html
- Web.Mvc / Views / Shared / Components / SideBarMenu / _MenuItem.cs html
v5.1.x и ниже
Обратите внимание, что в Default.cs html.
@foreach (var menuItem in Model.MainMenu.Items.OrderByCustom().ToList())
@foreach (var subMenuItem in menuItem.Items.OrderByCustom().ToList())
@foreach (var subSubMenuItem in subMenuItem.Items.OrderByCustom().ToList())
* 1038 вы должны измениться в 3 местах (что соответствует 3 уровням вложенности) * Файл изменен:
- Web.Mvc / Views / Shared / Components / SideBarNav / Default.cs html