0

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

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

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


编辑:

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


进一步编辑:

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

4

1 回答 1

2

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

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

更新:

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

于 2010-07-26T03:20:13.030 回答