【问题标题】:How to add a node to the Dynamic Node Provider?如何将节点添加到动态节点提供程序?
【发布时间】:2012-04-21 19:08:11
【问题描述】:

我已经通过在 SiteMap 文件的 mvcSiteMapNode 中指定节点提供程序名称来实现一个动态节点提供程序,它工作正常。但是,我只想在用户通过身份验证后添加动态节点。原因是我想访问 HttpContext.User.Identity,以便我可以按 user.Identity 过滤节点。

因此,我已删除 SiteMap 文件中的 mvcSiteMapNode,而是在 Action 方法中调用 GetDynamicNodeCollection 方法(一旦用户通过身份验证),并且节点正在被用户过滤。这也按预期工作。

我的问题:获得节点后,如何将它们添加到 SiteMapNodeCollection 以便它们显示在从 ActionResult 返回的视图中?

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-sitemap


    【解决方案1】:

    这可能是 SiteMapNodeVisibility 提供者的工作,而不是 DynamicNodeProvider 的工作。

    原因是节点的缓存。

    【讨论】:

    • 除了是否使用了正确的提供者之外,主要问题是在首次访问站点地图时会触发提供者。这意味着无法控制何时生成和渲染节点。文档几乎不存在,就像 GITHUB 论坛上的回复一样。我即将删除 MvcSiteMapProvider,因为它的应用程序非常有限。
    猜你喜欢
    • 2015-07-20
    • 2012-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    相关资源
    最近更新 更多