【问题标题】:Replacing the route resolver in ASP.NET MVC替换 ASP.NET MVC 中的路由解析器
【发布时间】:2012-10-06 19:07:36
【问题描述】:

所以我的 MVC 应用程序从刚刚浏览到例如的用户那里收到了一个请求。 /home/about。它检查RouteTable 中的匹配模式并将其分派给正确的控制器和操作。太好了。

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

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

【问题讨论】:

    标签: c# asp.net-mvc


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-15
      • 2014-11-14
      • 2011-06-26
      • 1970-01-01
      • 1970-01-01
      • 2018-06-04
      • 1970-01-01
      相关资源
      最近更新 更多