0

我有一个 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”

在此处输入图像描述

4

1 回答 1

1

这确实与 MvcSiteMapProvider 没有任何关系,但可能与 Twitter Bootstrap 的功能有关(假设您使用的是 Bootstrap)。Twitter Bootstrap 设计用于触摸设备,因此默认情况下主链接不可点击(因为触摸它应该打开菜单,而不是导航到链接)。

但是有人想出了一个技巧来让它工作,假设你不想支持触摸设备。

我建议你重新考虑你的设计,因为现在触摸设备支持非常重要。一种可能的解决方案是使用 2 个链接 - 一个(带有向下箭头)打开菜单,一个导航到链接。

请注意,您可以修改/Views/Shared/DisplayTemplates目录中的模板以输出所需的任何 HTML/CSS,以便按照此处所述进行此工作。

于 2014-06-14T13:02:34.957 回答