根据您的默认参数,您可以创建路由约束
routes.MapRoute(
"Default",
"{Param1}",
new { controller = "ProcessDynamicPage", action = "YourAction" },
new {Param1= @"\d+" }
);
如果您的参数是整数,这将起作用。
如果您的默认参数是字符串或其他东西,并且您无法创建正则表达式,或者无法实现IRouteConstraint
最佳选择的东西,那么当它通过默认值时,它会为您的每个控制器创建匹配操作已经试图进行匹配。
routes.MapRoute(
"YourController",
"YourController\{Param1}",
new { controller = "YourController", action = "YourAction" }
}
);
routes.MapRoute(
"YourController2",
"YourController2\{Param1}",
new { controller = "YourController2", action = "YourAction" }
}
);
routes.MapRoute(
"Default",
"{Param1}",
new { controller = "ProcessDynamicPage", action = "YourAction" }
);
如果您有很多控制器,您可能应该真正研究如何为您所期望的创建约束。