是否有可能在ASP.NET MVC路由中跟随其他参数进行捕获?

时间:2010-04-29 12:25:42

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

我想创建一个看起来像这样的路线:

routes.Add(new Route(“{* url} / {action} .do / {id}”,new MvcRouteHandler())

这可能吗?好像猫必须是最后一个?

2 个答案:

答案 0 :(得分:1)

catch-all必须是路由中的最后一个参数,因为它表示“匹配剩余URL的 complete 。”

但是,您可以通过使用自定义MyRouteHandler而不是MvcRouteHandler来伪造它。您的自定义路由处理程序只需操作RouteContext即可将操作 id 拆分回URL,然后再将其传递给MvcRouteHandler进行处理。

答案 1 :(得分:0)

来自ScottGu

  

MVC框架选择了   控制器通过评估使用   RouteTable规则按顺序排列   他们已经注册

我认为你可以在追赶所有人之后注册,但它永远不会被击中,因为首先会击中全部。