我的解决方案中有某些节点需要出现在菜单/导航中,但不会出现在面包屑中,因为它们没有链接到实际页面,因此在单击时只会显示错误。我从这里尝试了几种与高级节点可见性有关的技术:https ://github.com/maartenba/MvcSiteMapProvider/wiki ,但我似乎无法让它为我工作。一位同事建议可能为 SiteMapPathHelper 类中的 SiteMapPath 方法设计一个重载,但我不确定这是否准确或如何格式化。我对 MVC 还很陌生,真的可以使用一些帮助。谢谢!
感谢@NightOwl888 的回复!我将添加更多细节以确保我做的事情正确。这是站点地图文件中节点部分的示例:
<mvcSiteMapNode title="Inventory Management" url="~/Resources/Inventory/Default.aspx">
<mvcSiteMapNode title="Group Inventory" action="#" visibility="SiteMapPathHelper,!*" clickable="false">
<mvcSiteMapNode title="Group Inventory Management" url="~/Resources/Inventory/UnitInventory" controller="GroupInventory" action="Index" />
<mvcSiteMapNode title="Manage All Group Inventory" url="~/Resources/Inventory/ManageAllGroupInventory.aspx">
<mvcSiteMapNode title="Manage Inventory Item" url="~/Resources/Inventory/ManageInventoryItem.aspx" />
</mvcSiteMapNode>
<mvcSiteMapNode title="Search Inventory" url="~/Resources/Inventory/SearchInventory.aspx?module=resource" />
</mvcSiteMapNode>
</mvcSiteMapNode>
“库存管理”代表用户导航到的初始页面,其中显示标题为“组库存”(第二个节点)的菜单,菜单项是其下方的项目(“组库存管理”,“管理所有组库存”和“搜索库存”)。每个菜单项都是指向其他页面的链接,但菜单标题不是链接且不可点击。当我导航到其中一个菜单项时,菜单标题(“组库存”)显示在面包屑显示中,即使它没有链接到任何内容。所以基本上如果我点击第一个菜单项,它会显示“主页 > 库存管理 > 集团库存 > 集团库存管理”,如果用户点击“集团库存”,它会导致错误。我需要防止“组库存”仅显示在面包屑路径中。我正在努力从你最初的回应中弄清楚这一点。
PS Group Inventory 节点中的一些属性是我添加的以尝试隐藏它,基于我目前看到的示例。