如何将Route插入RouteCollection的顶部

时间:2011-06-06 15:02:21

标签: asp.net-mvc asp.net-mvc-routing

我需要在mvc应用程序处理期间插入路由。我陷入困境,因为我只能使用MapPageRoute将新路由添加到路由表的末尾,并且我可以使用Insert将路由添加到集合的开头,但在这种情况下我无法定义此路由名称,所以我将来无法管理它。

所以问题是:是否有机会将具有已定义名称的路由添加到路径表的起点?

有人知道吗?

P.S。映射到最后并使用Reverse是个坏主意。

1 个答案:

答案 0 :(得分:1)

您可以使用Map和insert的组合。映射路由会返回Route对象。您可以映射路线,立即将其删除,然后像这样插入:

Route r = routes.MapRoute(
                                "SomeName", // Route name
                                "{controller}/{action}/{id}", // URL with parameters
                                new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
                            );
routes.Remove(r);
routes.Insert(0, r);

这将为您提供路线表顶部的命名路线。