2014-06-13 33 views
0

我有一个MvcSiteMap与包含子节点的MvcSiteMapNode父项。父节点有一个url,子节点有urls。显示时,当鼠标悬停在父节点上时,子节点出现在其下方,但是当单击父节点时,子节点消失,但网页不会导航到父节点的URL。单击MvcSiteMap父节点切换DropDown但不导航到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

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

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

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

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

+0

谢谢,这工作。并感谢您对移动设备的建议/评论。我们在手机上使用完全不同的菜单设计,所以目前我们并不关心这一点。 –