Asp.net 如何创建一个路由来匹配以给定前缀开头的所有路径?

Asp.net 如何创建一个路由来匹配以给定前缀开头的所有路径?,asp.net,asp.net-mvc,iis,url-routing,asp.net-mvc-routing,Asp.net,Asp.net Mvc,Iis,Url Routing,Asp.net Mvc Routing,在我的MVC应用程序中,我想创建一个路由,这样当用户请求以前缀开头的URL时,就会调用一些特定的操作 例如,我想要一个将processData{whatever}映射到动作上的路由,这样当用户请求processData、processData.asmx或processDataZOMG或任何带有processData前缀的其它路径时,动作就会被调用 我试过下面的路线 routes.MapRoute( @"ProcessData", @"processData*", //<<&l

在我的MVC应用程序中,我想创建一个路由,这样当用户请求以前缀开头的URL时,就会调用一些特定的操作

例如,我想要一个将
processData{whatever}
映射到动作上的路由,这样当用户请求
processData
processData.asmx
processDataZOMG
或任何带有
processData
前缀的其它路径时,动作就会被调用

我试过下面的路线

routes.MapRoute(
    @"ProcessData", @"processData*", //<<<< note asterisk
    new { controller = @"Api", action = @"ProcessData" } );
routes.MapRoute(
@“ProcessData”、@“ProcessData*”、//尝试以下操作:更新:此解决方案不起作用,请参考我在对此答案的评论中提供的解决方案

routes.MapRoute(

@“ProcessData”、@“ProcessData/{*附录}”、//您可以使用路由约束:

routes.MapRoute(
    "ProcessData", // Route name
    "{token}", // URL with parameters
    new { controller = "Api", action = "ProcessData" }, // Parameter defaults
    new { token = @"^processdata.*" } // constraints
);

这与
processDataX
不匹配。您是对的。但是,您可以实现一个自定义
IRoutHandler
,检查最后一个斜杠后面的部分(如果修剪后面的斜杠)是否以“processData”开头。
routes.MapRoute(
    "ProcessData", // Route name
    "{token}", // URL with parameters
    new { controller = "Api", action = "ProcessData" }, // Parameter defaults
    new { token = @"^processdata.*" } // constraints
);