Laden...

ASP.NET Parameter auf der ersten Route

Erstellt von Andreas@Tricept vor 7 Jahren Letzter Beitrag vor 7 Jahren 1.166 Views
A
Andreas@Tricept Themenstarter:in
289 Beiträge seit 2006
vor 7 Jahren
ASP.NET Parameter auf der ersten Route

Hallo,

für meine Website möchte ich auf der ersten URL Ebene eine Stadt angeben können.
Der Stadtname wäre aber nur der Parameter für mein Stadtcontroller.
Auf der ersten Ebene habe ich ansonsten natürlich auch andere Views und Controllerzugriffe.
Daher kann ich die Erste Ebene ja nicht dynamisch gestalten.

Meine Lösung sieht derzeit so aus:


            using (StadtController c = new StadtController())
            {
                foreach (var city in c.GetAvailableCities())
                {
                    routes.MapRoute(
                        name: city.Name,
                        url: city.Name,
                        defaults: new { controller = "Stadt", action = "Index", city = city.Name }
                    );
                }
            }

Das funktioniert auch, nur ist das der Bestpractice?

Die Alternative


            routes.MapRoute(
                name: "Stadt",
                url: "{city}",
                defaults: new { controller = "Stadt", action = "Index"}
            );

funktioniert dann nur für den Stadtcontroller. Andere Controller die auf die erste Ebene eingeschränkt sind gehen dann nicht.

Habt ihr Tipps für mich?

16.835 Beiträge seit 2008
vor 7 Jahren

Schau Dir IRouteConstraint an.
Damit machst Du Route Lookups, zB auf die Datenbank.