2013-08-01 17 views
5

Mam następujące trasy zdefiniowane w klasie RouteConfig:Dlaczego ta trasa MVC nie działa?

 routes.MapRoute(
      name: "DefaultMessage", 
      url: "API/{action}", 
      defaults: new { action = "MessageGateway" } 
     ); 
     routes.MapRoute(
       name: "DefaultNoParms", 
       url: "{controller}/{action}", 
       defaults: new { controller = "API", action = "Login" } 
     ); 

Kiedy przetestować to na moim localhost z tylko localhost: 65133/jak adres mam kierowane do logowania ActionResult na APIController, ale kiedy spróbuj localhost: 65133/API Pojawia się następujący błąd:

The matched route does not include a 'controller' route value, which is required

Czy ktoś może mi powiedzieć, co jest nie tak? The ActionResult MessageGateway istnieje ...

+0

Podczas gdy nie odpowiada na twoje pytanie. Sprawdź AttributeRouting. –

Odpowiedz

11

Wygląda na to, że błąd jest oczywisty - musisz powiedzieć, do którego kontrolera się udaje.

routes.MapRoute(
    name: "DefaultMessage", 
    url: "API/{action}", 
    defaults: new { controller = "API", action = "MessageGateway" } 
); 
+2

Tak, konkretnie, błąd polegał na tym, że nie określono kontrolera ani w domyślnych ustawieniach, ani w trasie do. –

+0

Dziękuję. Chyba założyłem, że "API /" to zrobi. –

+0

OK. To mi przeszkadza ... ale teraz, gdy dodaję tę trasę (API/apilogin), nie rozpoznaje ona: routes.MapRoute ( nazwa: "APILogin", adres URL: "API/apilogin ", domyślnie: nowy {controller =" API ", akcja =" apilogin "} ); routes.MapRoute ( nazwa "DefaultMessage" URL "API/{działania}" domyślne: New {kontroler = "API", działania = "MessageGateway"} ); routes.MapRoute ( nazwa: "DefaultNoParms", url: "{kontroler}/{akcja}", domyślnie: new {controller = "API", action = "Logowanie"} ); –

Powiązane problemy