所以我的MVC应用程序收到刚刚浏览过的用户的请求。 /home/about
。它检查RouteTable
是否匹配模式,并将其分派给正确的Controller和Action。大。
如果我想接管这个功能怎么办?我不想重写URL,我不想在过滤器上下文中混淆RouteData
属性或类似的东西。我想接管路由X被我的MVC应用程序转换为控制器Y和动作Z的部分。类似于MyRouteResolver : IRouteResolver
(如果确实存在的话)。
我一直在MSDN上挖掘,但我找不到任何暗示这是怎么做的。任何帮助表示赞赏。
答案 0 :(得分:1)
您可以编写一个有效执行相同操作的http处理程序/模块,查看System.Web.Routing.UrlRoutingHandler以了解它们是如何执行此操作的。
然而,一个问题是,MVC中的所有调用以查找路由的URL都不起作用(例如UrlHelper),它们都是硬编码以获取静态路由集合。您可以填写该路由集以使其正常工作,但之后我不确定您从拥有自己的路由处理程序获得了什么。
当前的路由处理程序非常灵活,您可以编写自己的路由类(请参阅RouteBase),而不是替换整个处理程序。