根据您的默认PARAMS是什么,你可以创建一个route constraint
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" }
);
如果你有很多控制器,你应该真正考虑如何创建你期待什么约束。
我很难理解问题在这里。你可以换一下还是更简洁一些?另外,如果您已经完成了一些工作,那么您最好分享这项工作。 – Candide
编辑问题 – rhughes