使MVC站点地​​图仅将相关节点发送给可见性提供者

时间:2016-02-09 15:56:05

标签: asp.net-mvc menu mvcsitemapprovider

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

我使用this文章来使用我自己的可见性逻辑。

我的布局页面包含以下行:

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

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

有什么建议吗?

由于

1 个答案:

答案 0 :(得分:0)

没有"命名HTML助手的概念"存在于FilteredSiteMapNodeVisibilityProvider之外。如果您创建自定义提供程序,则需要在运行自定义逻辑之前检查您所在的菜单(just like in FilteredSiteMapNodeVisibilityProvider)。

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