Ich schreibe eine MVC-Anwendung mit MVC-Bereichen. Derzeit verwenden wir die folgende Route für unseren Anzeigebereich:Gibt es eine Begrenzung für die Anzahl der Parameter, die eine MVC-Route verarbeiten kann?
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Display_default",
"Display/{controller}/{action}/{id}/{id2}/{id3}/{*id4}",
new { action = "Index", id = UrlParameter.Optional , id2 = UrlParameter.Optional, id3 = UrlParameter.Optional }
);
}
Und das funktioniert. Allerdings entdeckten wir die Notwendigkeit für eine Controller-Aktion mit 6 Parametern:
public ActionResult _MyMethod(string id, string id2, string id3, string id4, string id5, string id6)
wir entdeckten wir dieses wir die aktuellen Einstellungen hinzufügen können jedoch beliebige Parameter in der URL nach dem her ist id gerade in die 4. id Parameter verkettet.
Wir haben versucht, die Strecke zu verlängern, die Anzahl der Parameter zu akzeptieren, dass wir wie so benötigt:
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Display_default",
"Display/{controller}/{action}/{id}/{id2}/{id3}/{id4}/{id5}/{*id6}",
new { action = "Index", id = UrlParameter.Optional , id2 = UrlParameter.Optional, id3 = UrlParameter.Optional }
);
}
jedoch diesen Weg mit der Seite nicht mehr Lasten.
Hat MVC Routing eine Art CAP bezüglich der Anzahl der Parameter, denen es zugeordnet werden kann? Wir haben auch entdeckt, dass wenn wir die Anzahl der gemappten Parameter auf id, id2 und id3 verkleinern, es aber wieder mit allen Überläufen funktioniert, die zu id3 verkettet werden.
Hat jemand irgendwelche Informationen dazu?
Sie so viele haben, wie Sie (bis zu dem Punkt, an dem Sie die Query-String-Grenze überschreiten würde und eine Ausnahme auslösen) wollen . Aber nur der letzte Parameter kann als 'UrlParameter.Optional' markiert werden. –
Ok, also in meinem Fall oben, warum würde es nicht die 6 Parameter erlauben, die ich brauche? –
Haben Sie alle 'UrlParameter.Optional' entfernt. Und warum hast du den 6. mit '{* id6}' markiert? –