2010-07-25 49 views
0

我正在使用MVC SiteMap项目的v2.0。MVC SiteMap 2.0是否支持自定义属性?

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

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


编辑:

我要澄清的属性如何显示为 “不行”。当我向自己的根节点添加自定义属性(例如isPrimary =“true”)时,我的SiteMap.CurrentNode属性始终为空。但是,SiteMap.RootNode属性填充正常。有任何想法吗?


进一步编辑:

鉴于任何附加的属性我会添加添加的RouteData,有没有添加到不以任何方式的路由相关节点的属性的方法吗?我正在考虑一个可以用来识别某些节点的任意参数。

回答

2

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

很确定这一直奏效。 AddNode()方法都调用base.AddNode方法,它会添加任何你想要的属性。

更新:

试过你的例子,工作正常。当我测试这个时,我实际上在SiteMap.Provider.CurrentNode上进行了调试,并且自定义属性在那里。也许它是一个错误,试试最新的下降?

+0

感谢您的反馈jfar。我澄清了我的问题,因为我的问题似乎更加微妙。 – 2010-07-26 07:37:04

+0

好的谢谢 - 我会得到最新版本。 – 2010-07-26 14:51:47

+0

Ah-ha我想我现在看到它是如何工作的 - 任何自定义属性都转换为路由值,对吧?我认为我添加的属性在路线中没有相应的“插槽”。谢谢你的帮助。 – 2010-07-26 14:59:35