【问题标题】:Does MVC SiteMap 2.0 support custom attributes?MVC SiteMap 2.0 是否支持自定义属性?
【发布时间】:2010-07-25 19:36:25
【问题描述】:

我正在使用 MVC SiteMap 项目的 v2.0。

使用 webforms 中的 System.Web.XmlSiteMapProvider,我经常将自定义属性存储在节点上,并通过 Attributes[] 集合访问它们。这对于构建非标准节点集合非常有用,它们都共享一个属性。

MVC 站点地图似乎不支持自定义属性。这是正确的吗?如果没有,任何人都可以提出一个好的方法来识别我的站点地图中应该被视为“主要”导航的节点吗?


编辑:

我应该澄清属性如何“不起作用”。当我向根节点添加自定义属性(例如 isPrimary="true" )时,我的 SiteMap.CurrentNode 属性始终为空。但是, SiteMap.RootNode 属性填充得很好。有什么想法吗?


进一步编辑:

鉴于我添加的任何其他属性都将添加到 RouteData,有没有办法将属性添加到与路由没有任何关系的节点?我正在考虑一个可以用来识别某些节点的任意参数。

【问题讨论】:

    标签: asp.net-mvc attributes sitemap mvcsitemapprovider


    【解决方案1】:

    这在提供程序的最新版本中运行良好。刚刚使用最新的源代码和 MVC Music Site Demo 对此进行了测试。

    很确定这总是有效的。 AddNode() 方法都调用 base.AddNode 方法,这些方法将添加您想要的任何属性。

    更新:

    试过你的例子,效果很好。当我对此进行测试时,我实际上在 SiteMap.Provider.CurrentNode 上进行了调试,并且自定义属性就在那里。也许它是一个错误,尝试最新的下降?

    【讨论】:

    • 感谢 jfar 的反馈。我已经澄清了我的问题,因为我的问题似乎有点微妙。
    • 啊哈,我想我现在明白它是如何工作的了——任何自定义属性都会转换为路由值,对吧?我认为我添加的属性在路线中没有相应的“插槽”。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2020-06-21
    • 2013-03-10
    • 2011-10-15
    • 1970-01-01
    • 2014-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多