在我的MVC应用程序中,我想创建一个路由,当用户请求以前缀开头的URL时,会调用一些特定的操作。
例如,我想要一条将processData{whatever}
映射到某个操作的路线,以便当用户请求processData
,processData.asmx
或processDataZOMG
或其他任何processData
时1}}前缀调用该动作。
我尝试了以下路线
routes.MapRoute(
@"ProcessData", @"processData*", //<<<< note asterisk
new { controller = @"Api", action = @"ProcessData" } );
但它不匹配processData
和任何带有该前缀的内容 - 路由匹配失败,请求被重定向到主页面。
如何将具有特定前缀的所有路径匹配到特定控制器 - 操作对的路由?
答案 0 :(得分:0)
请尝试以下操作: 更新 :此解决方案不起作用,请参阅我在评论中提供的解决方案这个答案。
routes.MapRoute(
@"ProcessData", @"processData/{*appendix}", //<<<< note asterisk
new { controller = @"Api", action = @"ProcessData" } );
答案 1 :(得分:0)
您可以使用路线限制:
routes.MapRoute(
"ProcessData", // Route name
"{token}", // URL with parameters
new { controller = "Api", action = "ProcessData" }, // Parameter defaults
new { token = @"^processdata.*" } // constraints
);