Ich habe eine MVC 4 (im Moment sowieso) Seite, die ich einer Reihe von Kunden anbieten möchte. Ich dachte, ich hätte eine clevere Idee und würde Custom Controller erstellen und dann auswählen, welche basierend auf einem Parameter oder etwas zu verwenden ist.MVC Routing/dynamische Controller
Jeder Kunde wird seine eigene Installation haben, daher sollte der zu verwendende Controller zur Kompilierzeit ausgewählt werden und nicht im Idealfall die Zeit laufen.
Also war die Idee, eine Steuerung pro Kunde z. Customer1Controller
, Customer2Controller
usw. und dann so zuordnen, dass alle Kunden http://myserver/Customer
verwenden würden.
Ich habe versucht, alle Customer/{action}
zu Customer1/{action}
zu mappen, aber ich konnte sowieso nicht finden, alle Aktionen in einer Anweisung abzubilden und einen für jede Aktion zu haben, scheint ein bisschen hässlich.
Meine erste Idee war es zu versuchen, Abhängigkeit Injektion zu verwenden, aber wie die konkreten Klassen für Controller verwendet werden, ist das offenbar keine Option. Es hat auch einige andere Mängel.
Die eigentliche Frage ist; Gibt es überhaupt einen "Fang" für Aktionen? Etwas wie folgt aus:
routes.MapRoute(
name: "Import",
url: "Customer/*/{id}",
defaults: new { controller = "Customer1", action = *, id = UrlParameter.Optional }
);
Thanks./H
Vermasselt irgendwo, wie ich diese Kombination getestet und es immer um die Index.default-Aktion geroutet. Aber es funktioniert jetzt so Vielen Dank. Ich habe einen Abschnitt der Website, die an den Kunden angepasst ist. Daher die Idee, verschiedene Controller für diesen Teil zu verwenden (wie ich DI verwende, um die Klassen für die Geschäftslogik auszuwählen), aber war nicht möglich oder eine gute Idee darüber nachzudenken. Einige Aktionen werden anders sein und ich möchte vermeiden, ein Vielfaches zu haben von if Aussagen für die anderen .. – VikingIT