2 Stimmen

Wie man Namespace in benutzerdefinierten Route-Handler für MVC3 angeben?

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ß).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X