1

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

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

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

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

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

无法解析站点地图节点服务员的 URL,它表示控制器会议服务员中的操作索引。确保可以解析此站点地图节点的路由,并且其默认值允许解析当前站点地图节点的 URL。

我尝试在映射路线时设置默认值,这使问题消失了。但是有没有办法在不设置默认值的情况下解决这个问题(因为应该没有默认值)?

4

1 回答 1

1

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

希望获得一些反馈,并可能在默认值中进行更改?

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

于 2012-12-10T03:50:01.823 回答