1

我在 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 可以工作,但所有其他 /controller/action 路由都映射到 /xmlrpc/pingback?controller=home&action=index。

如何创建一个匹配除“xmlrpc”之外的每个控制器名称的约束?还是有另一种方法可以做到这一点?

//琼

4

1 回答 1

2

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

于 2012-05-09T19:04:03.547 回答