我已经通过在SiteMap文件中的mvcSiteMapNode中指定节点提供程序名称来实现动态节点提供程序,并且它可以正常工作。但是,我只想在用户进行身份验证后添加动态节点。原因是我想访问HttpContext.User.Identity,以便我可以通过user.Identity过滤节点。
因此,我删除了SiteMap文件中的mvcSiteMapNode,而是在Action方法中调用GetDynamicNodeCollection方法(一旦用户进行了身份验证),并且用户正在过滤节点。这也按预期工作。
我的问题:获得节点后,如何将它们添加到SiteMapNodeCollection中,以便它们显示在从ActionResult返回的视图中?
答案 0 :(得分:1)
这可能是SiteMapNodeVisibility提供程序的工作,而不是DynamicNodeProvider的工作。
原因是节点的缓存。