Древовидное меню для панели администратора

Попробую первый пост по разработке. Специально для одного моего подписчика который пишет на Delphi)

И так, делал древовидное меню для интернет-магазина, с возможностью добавления категорий "на лету", но план изменился и, дабы труд не пропадал, предам его общественности, может даже кому пригодится.

Пример можно посмотреть тут

Проект на .net Core 3.1 в среде разработки Visual Studio 2019.

- Создаем проект на .net mvc (Core или .net Framework не имеет значения);

- Добавляем модель категории;

Древовидное меню для панели администратора Программирование, Net, Aspnet, Jquery, Гифка, Длиннопост

- Создаем папку для хранения класса Html-хелпера который будет формировать разметку для нашего меню (в моем случае это App_Code);

- Добавляем класс для хелпера (у меня это TreeViewMenuHelper.cs) и добавляем туда код:

Древовидное меню для панели администратора Программирование, Net, Aspnet, Jquery, Гифка, Длиннопост
Древовидное меню для панели администратора Программирование, Net, Aspnet, Jquery, Гифка, Длиннопост

- Теперь для вывода меню на странице нам достаточно указать строку: @Html.CreateBaseList(Model), а компилятор сделает все за нас и создаст html-разметку

- Мой проект имеет такую структуру:

Древовидное меню для панели администратора Программирование, Net, Aspnet, Jquery, Гифка, Длиннопост

- Затем создадим объекты Category, без них ну вообще ни как). Я добавил их просто в контроллере, при обращении к Index мы создаем объекты и передаем их в представление.

Древовидное меню для панели администратора Программирование, Net, Aspnet, Jquery, Гифка, Длиннопост

Отступление для тех кто первый раз или пишет на Delphi:

Теперь у нас готова реализация MVC:

model - мы описали объект Category.

view - представление, то что видит пользователь.

controller - контроллер, который работает связующим звеном и обрабатывает запросы, например передать в представление категорию с Id = 1 или Id = 2, или все вместе.

Почему в аббревиатуре MVC "С" - поставили последней не знаю, мне кажется это не справедливо по отношению к ней.

- Теперь нам следует добавить стили в файлы стилей (у меня site.css) и скрипты в файлы скриптов (у меня site.js), не перепутать.

- CSS и JavaScript (берем по ссылке в примере).

- И получаем такое меню.

Древовидное меню для панели администратора Программирование, Net, Aspnet, Jquery, Гифка, Длиннопост

Ссылка на депозитарий GiHub (Узнал, что депозитАрий пишется через "А", день не зря прожил)