Ich versuche, einige Domain-Namen Logik in meinem vorhandenen MVC5 App zu implementieren. Das Problem, das ich in zu renne, wenn ich versuche, meine benutzerdefinierte Unterklasse von der Route zu verwenden, ist es nicht das Feld Namespaces nicht respektiert und wirft einen Fehler, weil ich 2 verschiedene Benutzer-Controller verfügen.routen und Namespaces in MVC5
Als Kontrolle funktioniert das völlig in Ordnung:
routes.MapRoute("Login",
"login/",
new { controller = "User", action = "Login" },
new[] { "Quotes.Web.Controllers" });
Meine DomainRoute Klasse erbt von der Route und fügt nur ein Domain-Eigenschaft. Hier ist der relevante Konstruktor:
public DomainRoute(string domain, string url, object defaults, string[] namespaces = null)
: base(url, new RouteValueDictionary(defaults), new MvcRouteHandler())
{
Domain = domain;
DataTokens = new RouteValueDictionary {["Namespaces"] = namespaces};
}
und ich registrieren sie mag:
var loginRoute = new DomainRoute(
domain,
"login/",
new { controller = "User", action = "Login" },
new[] { "Quotes.Web.Controllers" });
routes.Add("Login", loginRoute);
DataTokens sieht identisch zwischen der Arbeitsversion und mein gebrochenes Version doch scheint es, die Tatsache zu ignorieren, dass meine DomainRoute einen Namespace hat Eintrag
Es wurden mehrere Typen gefunden, die mit dem Controller namens 'Benutzer' übereinstimmen. Dies kann vorkommen, wenn die Route, die diese Anforderung bedient ('login /') keine Namespaces angibt, um nach einem Controller zu suchen, der der Anforderung entspricht. Wenn dies der Fall ist, registrieren Sie diese Route, indem Sie eine Überladung der MapRoute-Methode aufrufen, die einen Namespaces-Parameter verwendet.
Was bin ich?