MVC2-Routing mit WCF ServiceRoute: Html.ActionLink rendering falsche links!

Ich habe einen WCF service, der lebt side-by-side mit einer MVC2-web-site. Ich möchte für meine URL für den service wie folgt Aussehen:

http://localhost/projdir/Service

Dem MVC-Website ist in den Kinderschuhen, also es hat immer noch alle Ihre boilerplate-Controller etc.

Der folgende code funktioniert auf den ersten Blick im Allgemeinen.asax:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.Add(new ServiceRoute("Service", new ServiceHostFactory(), 
               typeof(MyService)));

    routes.MapRoute(
        "Default", //Route name
        "{controller}/{action}/{id}", //URL with parameters
        new { controller = "Home", action = "Index", 
              id = UrlParameter.Optional } //Parameter defaults
    );
}

Der Dienst erscheint nur, wo ich beschrieben und funktioniert wie beworben. Toll.

Allerdings habe ich gerade bemerkt, dass die Bestellung meinen code auf diese Weise können änderungen alle meine ActionLink's. Zum Beispiel, die "Über" - tab auf der MVC-Seite erscheint nun so:

http://localhost/projdir/Service?action=About&controller=Home

Dies ist offensichtlich falsch (es sollte http://localhost/projdir/Home/About/ ).

Wenn ich den ServiceRoute unten neben der Standard - MapRoute() anrufen, dann bekomme ich einen fehlenden controller-Fehler. (Tatsächlich bekomme ich ein "StructureMapControllerFactory nicht zurück eine Instanz einer controller" Fehler, weil ich bin verdrahtet mit StructureMap, duh, es ist nicht ein controller, um mit zu beginnen.)

Interessanterweise scheint es nur zu sein, die die Ausgabe von Html.ActionLink(). Ich kann Sie manuell eingeben, in http://localhost/projdir/Home/About/ und Holen Sie auf der richtigen Seite.

Was schrecklich offensichtlich newbie Fehler bin ich?

InformationsquelleAutor roufamatic | 2010-08-25
Schreibe einen Kommentar