asp.net mvc 3中的路由冲突

时间:2012-05-09 18:56:37

标签: asp.net-mvc-3 routes

我对asp.net mvc中的路由有一个恼人的问题。我已经创建了一个自定义路由处理程序来处理对我的站点的XMLRPC调用,我想将它路由到/ xmlrpc / pingback。

在global.asax.cs中我有这个:

routes.MapRoute(
            "Default", 
            "{controller}/{action}/{id}", 
            new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

routes.Add(new Route("xmlrpc/pingback", null,
            new RouteValueDictionary(),
            new PingbackRouteHandler()));

现在找不到xmlrpc / pingback,因为没有名为xmlrpc的控制器。

如果我将订单切换到xmlrpc路由首先xmlrpc工作,但每个其他/控制器/操作路由都映射到/ xmlrpc / pingback?controller = home& action = index。

如何创建一个匹配除“xmlrpc”之外的每个控制器名称的约束?或者还有另一种方法吗?

// Joan

1 个答案:

答案 0 :(得分:2)

您可以将controller = "Fake"添加到Pingback路由的默认值,以防止它与其他路由匹配。