Форум программистов, компьютерный форум, киберфорум
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/40: Рейтинг темы: голосов - 40, средняя оценка - 4.55
2281 / 1597 / 400
Регистрация: 26.06.2017
Сообщений: 4,721
Записей в блоге: 1

Динамическое выпадающее меню и контроллер MVC

14.06.2021, 20:04. Показов 7357. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
День бодрый.

Пытаюсь создать web-сайт с динамическим меню, но не знаю как к нему подступиться. Само меню думаю сделать без явы средствами HTML и CSS:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<ul class="mmenuu">
    <li><a href=#>Меню №1</a>
        <ul class="ssubmenuu">
            <li><a href=#>Субменю №1 первого меню</a></li>
        </ul>
    </li>
    <li><a href=#>Меню №2</a>
        <ul class="ssubmenuu">
            <li><a href=#>Субменю №2 второго меню</a></li>
            <li><a href=#>Субменю №2 второго меню</a></li>
        </ul>
    </li>
    <li><a href=#>Меню №3</a>
        <ul class="ssubmenuu">
            <li><a href=#>Субменю №3 третьего меню</a></li>
            <li><a href=#>Субменю №3 третьего меню</a></li>
            <li><a href=#>Субменю №3 третьего меню</a></li>
        </ul>
    </li>
</ul>
Собственно у меня вопросов два:
1. Как динамически добавлять пункты меню и субменю?
2. Как в контроллере MVC задать реакцию на клик конкретного пункта меню и/или субменю?
По второму вопросу поясню - нужно предоставить пользователю возможность кликнуть и по пункту меню и по пункту субменю. Раскрытие субменю планируется при наведении курсора (hover).

По первому вопросу вроде бы есть догадка: нужно в модели определить класс коллекцию и передавать её (заполненную значениями) в представление, а затем простым перебором, используя Razor, наполнить представление. Для каждого элемента коллекции также назначить коллекцию для субменю. Но как организовать отклик в контроллере ума не приложу.
Писать что-то на JavaScript не хочется, т.к. в яве я полный ноль.

Ответы, если можно, простенькими примерами, я не волшебник, я только учусь!

Не по теме:

Сильно не пинайте, я только начал читать книги по ASP.Net MVC. С Razor не знаком от слова совсем.



Добавлено через 49 минут
Нашёл на хабре подобную тему, но там нет про контроллер
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.06.2021, 20:04
Ответы с готовыми решениями:

Зачем нужен контроллер API если есть контроллер MVC?
Вопрос с собеседования. И так, понятно что API контролер ограничен относительно контроллера MVC. Не смог ответить зачем иммено его создали,...

Выпадающее меню. Не фиксируется бордер раздела меню, при использовании подменю
Делаю выпадающее меню, почти все сделал, осталось по сути немного, и не могу закончить. Вот код: ...

выпадающее меню внутри выпадающего меню выпало без наведения на кнопку
не могу сделать чтобы при наведении на кнопку страны она находится на 1этапе выпадающего меню выпадало меню где кнопка города на...

9
800 / 583 / 207
Регистрация: 21.02.2019
Сообщений: 2,095
15.06.2021, 10:05
Uswer,
.. по-моему, вы собираетесь изобретать велосипед на территории Голландии условно ... Все вебовские контролы типа Dropdown Menu в части динамической подгрузки данных опираются на JavaScript (еще раз, это не Джава, и не Ява, а совсем более другой язык), включая и Bootstrap, и Material Design, и Vuetify и прочие Beautify, и кондовый Select2 на Jquery ... Везде для подгрузки данных используется Ajax и его обертки ... Без этого для подгрузки данных в субменю вам придется перезагружать страницу ... Да и вообще - чистый MVC без JS возможен, но только в четко шаблонных применениях .. Хотите перламутровых пуговиц - читайте доки по JavaScript ...
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
15.06.2021, 12:39
Uswer,
Контроллер не имеет никакого отношения к каким-то меню страницы. Все эти "штучки" пишутся в представлении, показываются-прячутся стилями, а управляются JS.

Добавлено через 8 минут
Цитата Сообщение от Uswer Посмотреть сообщение
1. Как динамически добавлять пункты меню и субменю?
Что Вы имеете в виду под словом "динамически" ?
- Если изменение пунктов меню при действии пользователя в браузере, то JS (обработчики событий и перенастройка пунктов меню стилями или перестройкой элемента DOM с меню).
- Если при перечитке страницы в результате опять же действий пользователя (нажатие кнопки отправки формы на сервере), то на сервере, при этом параметры формы принимает метод контроллера, готовит данные и передает их представлению, где и "составляется" нужное меню, после чего страница отправляется Клиенту с нужным "меню".
0
2281 / 1597 / 400
Регистрация: 26.06.2017
Сообщений: 4,721
Записей в блоге: 1
15.06.2021, 18:02  [ТС]
Парни, суть такая: при первой загрузке страницы необходимо построить её меню на основе данных из БД, извлечение данных реализовано в методе модели. Данные в БД имеют свойство обновляться, поэтому при обновлении страницы меню также должно перестроиться.
Я уже близок к реализации своей мысли без скриптов аля "перламутровые пуговицы", только HTML и CSS (система меню уже строится на основе данных БД), мне бы только разобраться с контроллером и дело в шляпе. Хотя я уже и с контроллером на финишной прямой. А все эти красивости типа JS приберегу на потом.

Спасибо, что не оставили без внимания, но и помощи я не дождался.
0
 Аватар для XIST
1960 / 1061 / 148
Регистрация: 01.10.2009
Сообщений: 3,589
Записей в блоге: 1
15.06.2021, 18:12
Цитата Сообщение от Uswer Посмотреть сообщение
1. Как динамически добавлять пункты меню и субменю?
ПРоходите по модели, вставляете
Code
1
@Html.ActionLink[quote="Uswer;15567338"]
Цитата Сообщение от Uswer Посмотреть сообщение
2. Как в контроллере MVC задать реакцию на клик конкретного пункта меню и/или субменю?
ПО акшиону с вышесказанного.
1
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
16.06.2021, 21:57
[quote="XIST;15569320"]@Html.ActionLink
Цитата Сообщение от XIST Посмотреть сообщение
ПО акшиону с вышесказанного.
Стесняюсь спросить - а где тут "динамика" ?
По каждому клику на меню полная перезагрузка с новыми пунктами меню, построенными на сервере "из базы", - это и есть "динамика" ?
0
 Аватар для XIST
1960 / 1061 / 148
Регистрация: 01.10.2009
Сообщений: 3,589
Записей в блоге: 1
16.06.2021, 22:05
MsGuns, вопрос про динамическое добавление, про переходы не было вроде
0
2281 / 1597 / 400
Регистрация: 26.06.2017
Сообщений: 4,721
Записей в блоге: 1
16.06.2021, 23:59  [ТС]
Цитата Сообщение от MsGuns Посмотреть сообщение
По каждому клику на меню полная перезагрузка с новыми пунктами меню
К сожалению да, но именно так и задумывалось. Дело в том, что в настоящий момент основные пункты меню статичны в базе данных - меняются только пункты субменю. Также меню обновляется при обновлении самой страницы, но это и так понятно.
Клик по пунктам меню и субменю дёргает Partial Views. По хорошему нужно реализовать запрос пунктов субменю при наведении курсора мыши на пункт меню, но насколько я понимаю сделать это можно только средствами JavaScript, а это для меня пока сложновато.
Вопрос в принципе решён. Вроде работает. Показывать как я достиг решения хоть и принято на форуме, но я думаю, что здесь это никому не интересно, ведь так никто не делает.

Всем ещё раз спасибо.
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
17.06.2021, 02:17
Цитата Сообщение от Uswer Посмотреть сообщение
К сожалению да, но именно так и задумывалось.
Плохо задумывалось

Цитата Сообщение от Uswer Посмотреть сообщение
Дело в том, что в настоящий момент основные пункты меню статичны в базе данных - меняются только пункты субменю
Да меню может быть хоть шестиэтажным - что это меняет в общей кривой картине ?
Цитата Сообщение от Uswer Посмотреть сообщение
Также меню обновляется при обновлении самой страницы, но это и так понятно.
Да что Вы говорите ? В мне вот непонятно, зачем обновлять всю страницу при изменении пунктов/подпунктов меню.
Цитата Сообщение от Uswer Посмотреть сообщение
Клик по пунктам меню и субменю дёргает Partial Views
Опять же, что это меняет ? Ну собираете Вы на сервере страничку из кусков, на клиенте все равно получается тельняшка целиком.
Цитата Сообщение от Uswer Посмотреть сообщение
По хорошему нужно реализовать запрос пунктов субменю при наведении курсора мыши на пункт меню, но насколько я понимаю сделать это можно только средствами JavaScript, а это для меня пока сложновато.
Т.е. сделать нормальное приложение с асинхроном, с гибким интуитивным интерфейсом, с полным сохранением состояния страницы (что чрезвычайно удобно для пользователя) - ну его нафих ибо нужно знать JS, сойдет и так ?
Цитата Сообщение от Uswer Посмотреть сообщение
ведь так никто не делает.
Делают по-разному, бывает и куда хуже Вашего.
0
2281 / 1597 / 400
Регистрация: 26.06.2017
Сообщений: 4,721
Записей в блоге: 1
17.06.2021, 12:09  [ТС]
MsGuns, критика применима в отношении специалистов, я же с самого начала написал, что только изучаю что такое веб-приложения и с чем их едят.

Цитата Сообщение от MsGuns Посмотреть сообщение
сделать нормальное приложение с асинхроном, с гибким интуитивным интерфейсом, с полным сохранением состояния страницы
Дойдёт и до этого, сначала изучу азы.

Цитата Сообщение от MsGuns Посмотреть сообщение
ну его нафих ибо нужно знать JS
Злюка
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.06.2021, 12:09
Помогаю со студенческими работами здесь

Выпадающее меню - разный размер шрифта для разных уровней меню
Есть у меня данный список, но возник вопрос: &quot;как сделать чтобы в надписи буквы1 был шрифт 19px, а в выпадающем меню был шрифт 16px&quot; ...

Выпадающее меню не пропадает при переходе на другой заголовок выпадающего меню.
есть 2 выподающих Выпадающий и Выпадающий2 если переходить именно по ним между ними то их выпадающие списки не пропадут. Понятно что...

Меню с фиксированной позиционированием, не полностью видно выпадающее меню
Привет! Ребята подскажите как в таком случае решить проблему. Есть меню фиксированное меню. В этом меню есть пункты с под меню. Все хорошо...

Как прикрепить выпадающее меню к названию в основном меню
Здравствуйте. Сейчас на сайте есть вертикальное меню, и при наведении на какой-либо его пункт, выпадающее меню появляется в самом верху...

[MVC] Контроллер одного уровня
Здравствуйте. Нужно создать одноуровневый контроллер. Что собственно нужно: Входной файл index.php В файле index.php вызывается...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru