Ich habe einen benutzerdefinierten Routing-Handler geschrieben. Da ich Bereiche in meiner Website mit widersprüchlichen Controller-Namen habe, erhalte ich den Fehler: Es wurden mehrere Typen gefunden, die mit dem Controller namens...
Ich denke, ich muss einen Namespace in meinem Handler angeben, richtig?
Ich habe Folgendes versucht, aber nichts davon funktioniert:
public class MyRouteHandler : MvcRouteHandler
{
protected override IHttpHandler GetHttpHandler(RequestContext requestContext)
{
(... complicated DB lookups and "re-writing" of requestContext.RouteData.Values["controller"] ...)
// doesn't work
requestContext.RouteData.Values["namespaces"] = new[] { "Site.Contollers" };
// doesn't work
requestContext.RouteData.DataTokens.Add("namespaces", new[] { "Site.Contollers" });
// doesn't work
requestContext.RouteData.Values["namespaces"] = "Site.Contollers";
// doesn't work
requestContext.RouteData.DataTokens.Add("namespaces", "Site.Contollers");
(... snip ...)
return base.GetHttpHandler(requestContext);
}
}
Was ist der richtige Weg?
HINWEIS: Da mein Handler Datenbankabfragen durchführt und basierend auf den Ergebnissen verschiedene Controller auswählt, kann ich die grundlegende MapRoute()-Methode in meiner Global.asax.cs-Datei nicht verwenden (soweit ich weiß).