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?
Schau Dir IRouteConstraint an.
Damit machst Du Route Lookups, zB auf die Datenbank.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code