单击MvcSiteMap父节点切换DropDown但不导航到URL

时间:2014-06-13 21:22:45

标签: mvcsitemapprovider asp.net-mvc-sitemap

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

是什么导致页面无法导航?

编辑(图片示例):

我的假设是点击事件被劫持以使子节点下拉消失并且不被传递

在点击之前将鼠标悬停在父节点上:

enter image description here

点击后,下拉列表消失,没有导航到“〜/ ParentUrl”

enter image description here

1 个答案:

答案 0 :(得分:1)

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

但有人想出a hack来让它工作,假设你不想支持触控设备。

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

请注意,您可以修改/Views/Shared/DisplayTemplates目录中的模板,以输出所需的任何HTML / CSS,以使其工作为described here