Mir ist aufgefallen, dass AreaRegistration in MVC 2 Preview 2 die Routen für jeden Bereich in einer beliebigen Reihenfolge lädt. Gibt es eine gute Möglichkeit, eines vor dem anderen zu bekommen?MVC 2 AreaRegistration Routes Auftrag
Zum Beispiel habe ich zwei Bereiche - "Site" und "Admin". Beide haben einen "Blog" -Controller.
Ich möchte folgendes:
/admin/ --> go to Admin's Blog controller
/ --> go to Site's Blog controller.
Das Problem ist, dass es die Website der Route wird geladen erste, so ist es {controller}/{action}/{id}
statt admin/{controller}/{action}/{id}
passend, wenn ich auf die URL „/ admin /“ gehen. Ich bekomme dann einen 404, weil es im Bereich "Site" keinen Admin-Controller gibt.
Beide Bereiche standardmäßig auf den "Blog" -Controller. Ich weiß, ich könnte einfach site/{controller}/...
als die URL setzen, aber ich würde es lieber an der Wurzel haben, wenn möglich. Ich versuchte auch, die Standardroute in der globalen RegisterRoutes-Funktion zu behalten, sie wird dann jedoch nicht an den Bereich "Sites" gesendet.
Vielen Dank im Voraus!
Hey Phil, danke für die Erklärung. Ich landete meine "Website" aus Bereichen und es ist jetzt der Bereich "Standard/Nicht-Bereich" (mit Ansichten und Controllern im Stammverzeichnis). Ich habe dann meinen Namespace-Parameter auf die Standard-Controller gesetzt, um den "mehrdeutigen Controller" -Fehler zu vermeiden. Außerdem könnte ich wahrscheinlich Einschränkungen wie etwa^((?! admin). *) Gesetzt haben, um den Admin in den Site-Bereich Routen zu ignorieren. Ich stimme zu, Hinzufügen von mehr Komplexität ist nicht groß, obwohl es scheint, dass MVC 1 (nicht Gebiet) Routen potenziell stark auf Ordnung verlassen können. Danke! – Jason
Der Routing-Prozess hängt normalerweise von der Reihenfolge der Regeln ab, daher kann die Funktion "Bestellung" wichtig sein. – twk
Bitte beachten Sie meine Antwort für zwei Techniken, mit denen Sie die Bereichsregistrierung (und damit ihre Routen) in beliebiger Reihenfolge bestellen können. – Eilon