2

所以我的 MVC 应用程序从刚刚浏览到 eg 的用户那里得到一个请求/home/about。它检查RouteTable匹配的模式并将其分派给正确的控制器和动作。伟大的。

如果我想接管该功能怎么办?我不想重写 URL,我不想RouteData在过滤器上下文中弄乱该属性或类似的东西。我想接管我的 MVC 应用程序将路由 X 转换为控制器 Y 和操作 Z 的部分。类似的东西MyRouteResolver : IRouteResolver(如果确实存在的话)。

我一直在 MSDN 上四处寻找,但找不到任何关于在哪里完成的提示。任何帮助表示赞赏。

4

1 回答 1

2

您可以编写一个有效地执行相同操作的 http 处理程序/模块,查看 System.Web.Routing.UrlRoutingHandler 以了解它们是如何做到的。

然而,一个问题是,在 MVC 中查找路由 url 的所有调用都不起作用(例如 UrlHelper),它们都经过硬编码以获取静态路由集合。您可以填充该路由集合以使其工作,但是我不确定您从拥有 ow 路由处理程序中获得了什么。

当前的路由处理程序相当灵活,您也许可以编写自己的路由类(参见 RouteBase)而不是替换整个处理程序。

于 2012-10-06T19:31:58.647 回答