使 MVC 站点地图仅将相关节点发送到可见性提供程序

Make MVC sitemap send only relevant nodes to visibility provider

我几天前开始使用 MVC 站点地图提供程序。 我的主要 objective 是创建 2 个菜单(主菜单和侧边菜单),foreach 菜单遍历它们的节点并根据特定的业务逻辑切换可见性。

我使用了 this 文章,以便使用我自己的可见性逻辑。

我的布局页面包含这些行:

@Html.MvcSiteMap().Menu(new { name = "MainMenu" })
@Html.MvcSiteMap().Menu(new { name = "SideMenu" })

在当前情况下,这两行中的每一行都会遍历 Mvc.sitemap 中指定的所有节点,我需要首先检查它们是否属于主菜单或侧菜单,然后继续我的逻辑。 我假设有一种方法可以在这两个菜单之间划分节点,并跳过检查是否从中发送节点的菜单名称的部分。

有什么建议吗?

谢谢

"named HTML helpers" 的概念不存在于 FilteredSiteMapNodeVisibilityProvider 之外。如果您制作自定义提供程序,则需要在 运行 您的自定义逻辑之前检查您所在的菜单 (just like in FilteredSiteMapNodeVisibilityProvider)。

但这并不意味着您不能将可见性提供程序中的代码组织成单独的部分。