Ich habe die Frage - ist es möglich, das nächste zu tun?
Ich habe drei Bereiche:
%Vor%In jedem Bereich habe ich einen ApiController mit dem gleichen Namen, aber natürlich in verschiedenen Namensräumen:
%Vor%Ich habe auch einen Wert von current (den ich gerne benutzen möchte) Area in configuration.
Ich möchte den Benutzer dem Controller im richtigen Bereich zuordnen (den ich in der Konfiguration finden kann), wenn er in den Browser eingibt:
%Vor%Wenn beispielsweise der aktuelle Bereich in der Konfigurationsdatei SiteOne ist, sollte diese Anfrage dem Controller MvcAppliaction.Areas.SiteOne.Controllers.ValuesController zugeordnet werden, aber wenn ich den aktuellen Bereich in der Konfigurationsdatei in SiteTwo of _Default ändere, sollte er zugeordnet werden richtigen Controller.
PS. Mit MVC Controller ist es einfach, Sie müssen nur Ihre Route einstellen:
%Vor%Mein Vorschlag wäre, eine benutzerdefinierte DefaultControllerFactory zu implementieren.
Sie können hier ein sehr gutes Beispiel hier
sehenDie Standard-Controller-Fabrik listet alle Controller nur nach Namen in einer Liste auf, die diese Art von Funktionalität nicht zulässt. Der obige Artikel zeigt Ihnen, wie Sie eine neue Factory erstellen und die Kontrolle über die Controller-Erstellung übernehmen, damit Sie Routen zu bestimmten Namespaces problemlos zuordnen können.
Das würde die Funktionalität geben, nach der Sie suchen.
Fügen Sie die folgende using-Anweisung hinzu und ändern Sie die Routenregistrierung in Ihrer AreaRegistration.cs-Datei.
%Vor%Tags und Links asp.net-web-api c# asp.net-web-api-routing asp.net-mvc-areas