我在一个项目中使用ASP.NET MVC SiteMap提供程序,它运行良好.我正在努力想弄清楚如何隐藏菜单项.我想隐藏在全局导航中显示的菜单项是我的“站点地图”页面.现在我知道在mvcSiteMapNode上有一些叫做VisibilityProvider的东西 – 但我似乎无法弄清楚如何让它工作.
解决方法
首先,我建议您阅读此Wiki页面:
Creating a Custom SiteMapNodeVisibilityProvider.然后,对于指向您的站点地图页面的特定节点,请以这种方式声明:
<mvcSiteMapNode title="Site Map" controller="Home" action="Map" visibility="false" />
现在,在实现IsVisible方法(在上面链接的wiki页面中显示)时,您可以这样做:
string visibility = mvcNode["visibility"]; // Is a visibility attribute specified? if (!string.IsNullOrEmpty(visibility)) { isVisible = Convert.ToBoolean(mvcNode["visibility"]); if (!isVisible) { return false; } } return true;