2013-08-20 78 views
0

我剛剛試圖將3.3.6.0的站點地圖提供程序更新到4.0.14。我跟着instruction on the wiki但是我的SiteMapPath現在呈現爲空。除了將模式更新到4.0以外,我沒有更改mvc.sitemap文件。當我調試到SiteMapPathHelperModel時,我發現模型沒有定義節點。我正在使用內部DI容器(我希望在切換到應用程序容器之前使其工作)。升級到MVCSiteMap後SiteMapPath爲空4

當我檢查sitemap.xml文件時,它很好地填充,這讓我認爲正在讀取mvc.sitemap。

我對這一個想法並不樂意提供任何可能有用的附加信息。我甚至不知道我可以在哪裏調試這個問題。從字面上看,我在工作3.3.6.0和不工作4.0.14之間唯一改變的是維基上規定的。

+0

嘿那裏。你有沒有解決這個問題?我發現自己處於相同的情況,並不知道爲什麼SiteMapPath()是空白的 –

回答

0

好的,因爲您的/sitemap.xml端點看起來可以正常工作,所以您正確地填寫並正確加載了站點地圖。

有一對夫婦的事情我知道的,可能會導致這種情況發生:

  1. 如果使用動態節點提供者,必須將其添加到不另外Sitemap的部分節點。見my question here - 我試圖找出爲什麼這種情況。
  2. 您的路線與您的節點不匹配 - 請閱讀Routing Basics和/或張貼您的路線和Mvc.sitemap XML。

如果檢查上述一切似乎是正確的,請展示你的配置的樣本小的演示項目,並在GitHub上打開一個問題,因爲它極有可能您的特定配置有事情做與問題。

順便說一句 - 你可以通過你的系統或者downloading the solution as a zip上克隆current repo,使NuGet包您的解決方案恢復調試(右鍵單擊該解決方案>啓用NuGet包還原),該MvcSiteMapProvider項目添加到您的解決方案,然後在你的項目移除對MvcSiteMapProvider的引用,並將引用添加到您的MVC項目中新添加的MvcSiteMapProvider項目。然後,您可以添加斷點並逐步執行代碼。我建議在執行此操作之前對您的解決方案進行備份(或確保可以以其他方式回退),並在完成後恢復到當前狀態。

我已經記錄了整個程序在這裏:http://www.shiningtreasures.com/post/2013/08/21/debugging-an-mvcsitemapprovider-configuration

相關問題