Нажатие родительского узла MvcSiteMap переключает DropDown, но не приводит к переходу по URL

У меня есть MvcSiteMap с родителем MvcSiteMapNode, который содержит дочерние узлы. У родительского узла есть URL, а у дочерних узлов есть URL. При отображении, когда указатель мыши находится над родительским узлом, дочерние узлы появляются под ним, однако при щелчке по родительскому узлу дочерние узлы исчезают, но веб-страница не переходит к URL-адресу родительского узла.

<mvcSiteMapNode title="Im a Parent" url="~/ParentUrl" >
  <mvcSiteMapNode title="Im Child 1" url="~/ChildUrl1" />
  <mvcSiteMapNode title="Im Child 2" url="~/ChildUrl2" />
</mvcSiteMapNode>

Что заставляет страницу не перемещаться?

Редактировать (пример с картинками):

Я предполагаю, что событие щелчка перехватывается, чтобы раскрывающийся список дочерних узлов исчез и не передавался

Наведите курсор на родительский узел, прежде чем нажать:

После щелчка исчезает выпадающий список, нет перехода к "~/ParentUrl"

1 ответ

Решение

Это действительно не имеет никакого отношения к MvcSiteMapProvider, но, вероятно, это связано с тем, как функционирует Twitter Bootstrap (при условии, что вы используете Bootstrap). Twitter Bootstrap предназначен для работы с сенсорными устройствами, поэтому по умолчанию главная ссылка не активируется (так как прикосновение к ней должно открывать меню, а не переходить по ссылке).

Но кто-то придумал, как заставить его работать, предполагая, что вы не хотите поддерживать сенсорные устройства.

Я предлагаю вам пересмотреть свой дизайн, так как поддержка сенсорных устройств очень важна в наши дни. Одним из возможных решений будет использование 2 ссылок - одна (со стрелкой вниз), чтобы открыть меню, и одна, чтобы перейти к ссылке.

Обратите внимание, что вы можете изменить шаблоны в /Views/Shared/DisplayTemplates каталог для вывода любого HTML/CSS, вам нужно, чтобы это работало, как описано здесь.

Другие вопросы по тегам