【问题标题】:Conflicting routes in asp.net mvc 3asp.net mvc 3中的冲突路由
【发布时间】:2012-05-09 18:56:36
【问题描述】:

我在 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”之外的每个控制器名称的约束?或者有其他方法吗?

//琼

【问题讨论】:

  • 为什么不直接使用 MVC 控制器而不是自定义处理程序?

标签: asp.net-mvc-3 routes


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2011-12-03
    • 2016-04-17
    • 2012-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多