MvcSiteMapProvider保留的路由参数给出错误“无法解析站点地图节点的URL”

时间:2012-03-10 02:21:44

标签: asp.net-mvc mvcsitemapprovider

我正在使用MVC SiteMap Provider在.Net MVC3中开发一个项目来创建菜单。

只有在设置了特定路由参数(meetingId)时,某些菜单节点才可见,请参见下面的示例:

<mvcSiteMapNode controller="MeetingAttendants" action="Index" title="Attendants" preservedRouteParameters="meetingId" />

meetingId参数是一个不可为空的int,没有默认值。在浏览有关会议的信息时设置该参数。

加载未设置参数的页面时,会引发错误:

  

无法解析站点地图节点的URL代表控制器MeetingAttendants中的操作索引的助理。确保可以解析此站点地图节点的路由,并确保其默认值允许解析当前站点地图节点的URL。

我在映射路由时尝试设置默认值,这会使问题消失。但是,无论如何在没有设置默认值的情况下解决这个问题(因为应该没有默认值)?

1 个答案:

答案 0 :(得分:1)

我不确定为什么解析器的默认实现会以这种方式运行。看看我的问题 - 以及使用对您自己的SiteMapNodeUrlResolver进行小改动的简单修复(就像您看到的那样)。

希望得到一些反馈,并且可能会在默认设置中更改?

https://github.com/maartenba/MvcSiteMapProvider/issues/115