C# 在ASP.NET MVC中替换路由解析器

C# 在ASP.NET MVC中替换路由解析器,c#,asp.net-mvc,C#,Asp.net Mvc,因此,我的MVC应用程序会收到刚刚浏览过的用户的请求,例如,/home/about。它检查RouteTable是否有匹配的模式,并将其发送给正确的控制器和操作。太好了 如果我想接管这个职能怎么办?我不想重写URL,我不想在过滤器上下文中弄乱RouteData属性或诸如此类的东西。我想接管路由X被MVC应用程序转换为控制器Y和动作Z的部分。类似于MyRouteResolver:iroutesolver(如果确实存在的话) 我一直在挖掘MSDN,但我找不到任何关于这是在哪里做的暗示。非常感谢您的帮助

因此,我的MVC应用程序会收到刚刚浏览过的用户的请求,例如,
/home/about
。它检查
RouteTable
是否有匹配的模式,并将其发送给正确的控制器和操作。太好了

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


我一直在挖掘MSDN,但我找不到任何关于这是在哪里做的暗示。非常感谢您的帮助。

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

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

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