我被一个问题困住了,我无法想象我是第一个必须处理它的人。然而,谷歌没有什么有用的东西,所以也没有,所以我在这里。
我正在使用带有站点地图的 ASP.NET MVC1。我使用 html 帮助器创建了一个导航菜单,该菜单突出显示 Site.Master 页面中当前选定的选项。常见场景,使用以下方法轻松完成:
foreach ( SiteMapNode subnode in node.ChildNodes) {
if (SiteMap.CurrentNode == subnode) { //got ourselves the current here }
}
这一切都很好,而且很花哨,但是,我的问题是我有 1 个具有多个操作的控制器。考虑以下场景:
账户 * 客户 * 供应商 * 维护
它们都将在我的 AccountController 中,进行相同但具有不同 AccountTypeId 值的搜索。
当我读取 SiteMap.CurrentNode 值时,它只提供了我正在使用 AccountController 的信息,而不是我调用了哪个操作。我已经尝试了很多东西,但我无法获得所要求的操作。
我希望我在那里提供了足够的信息,让您对场景有所了解。如果您还需要什么,请告诉我。
提前致谢 :)!
PS:自从在这里工作大约 2 个月以来就被扔进了 asp.net,所以请多多包涵。编程经验在这里,但 C# / .NET 知识大多等于 Google 或同事可以提供给我的知识。
编辑:-回应下面鲍勃的回答-
我遇到了 SiteMap Provider 项目,但是我没有给予太多关注,因为我使用的是 MVC1 并且它针对的是 MVC2。此外,我不太确定我们是否已经在使用它......毕竟,我有一个站点地图......而且可以在办公室告诉我的人在接下来的 2 年的某个地方的海滩上放松周:(