Ein zweiter Ansatz wäre die Verwendung von 2 MapRoutes. Beachten Sie, dass ich hier der Route "Benutzerdefiniert" hinzugefügt habe, um sicherzustellen, dass die Routing-Engine zwischen dieser Route und Routen, die drei Parameter annehmen, unterscheiden kann und auf die Standard-ASP-MVC-Route wechseln sollte.
Ich habe auch Route1 vor Route2 platziert, also würde die Routing-Engine, wenn sie 2 Parameter sieht, diese Route über Route2 bevorzugen. Wenn Sie 3 Parameter angeben, wird die Route Route2 über Route1 oder die Standard-Route von mvc bevorzugen.
routes.MapRoute(
//// Route name
"Route1",
//// URL with parameters
"Custom/{param2}/{param3}",
//// Parameter defaults
new { controller = "MyController", action = "MyActionName", param2 = string.Empty, param3 = string.Empty });
routes.MapRoute(
//// Route name
"Route2",
//// URL with parameters
"Custom/{param1}/{param2}/{param3}",
//// Parameter defaults
new { controller = "MyController", action = "MyActionName", param2 = string.Empty, param3 = string.Empty, param1 = string.Empty });
Angesichts der zwei Antworten, die ich zur Verfügung gestellt habe, bevorzuge ich dieses für seine Einfachheit. – MedicineMan