2010-07-25 85 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