我只是尝试将站点地图提供程序从3.3.6.0更新到4.0.14。我跟着instruction on the wiki,但我的SiteMapPath现在呈现为空。除了将架构更新为4.0之外,我没有对mvc.sitemap文件进行任何更改。当我调试到SiteMapPathHelperModel时,我发现模型没有定义节点。我正在使用内部DI容器(我希望在切换到应用程序容器之前使其工作)。
当我检查sitemap.xml文件时,它填充得很好,这让我觉得正在读取mvc.sitemap。
我对此没有想法,并乐意提供可能有用的任何其他信息。我甚至不确定我可以在哪里挂钩来调试这个问题。从字面上看,我在工作3.3.6.0和不工作4.0.14之间唯一改变的是维基上规定的内容。
答案 0 :(得分:0)
好的,由于您的/sitemap.xml
端点似乎正在运行,因此您正确填充并正确加载了站点地图。
我知道有几件事可能导致这种情况发生:
如果您检查上述内容并且一切看起来都是正确的,请制作一个小型演示项目,显示您的配置示例并在GitHub上打开一个问题,因为您的特定配置很可能与此问题有关。
BTW - 您可以通过克隆系统上的current repo或downloading the solution as a zip进行调试,在解决方案上启用NuGet包恢复(右键单击解决方案>启用NuGet包恢复),添加MvcSiteMapProvider项目到您的解决方案,然后在您的项目中删除对MvcSiteMapProvider的引用,并从MVC项目添加对新添加的MvcSiteMapProvider项目的引用。然后,您可以添加断点并逐步执行代码。我建议在执行此操作之前备份您的解决方案(或确保您可以回滚另一种方式),并在完成后恢复到当前状态。
我在这里记录了整个程序:http://www.shiningtreasures.com/post/2013/08/21/debugging-an-mvcsitemapprovider-configuration