2013-08-01 13 views
5

ho i seguenti percorsi definiti nella mia classe RouteConfig:Perché questa rotta MVC non funziona?

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

quando prova questo sul mio localhost con un solo localhost: 65133/come indirizzo sto indirizzato alle Entrata ActionResult sul APIController, ma quando ho try localhost: 65133/API Ottengo il seguente errore:

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

Qualcuno può dirmi cosa c'è che non va? The ActionResult MessageGateway esiste ...

+0

Pur non rispondendo alla tua domanda. Guarda in AttributeRouting. –

risposta

11

Sembra che l'errore sia auto-esplicativo: è necessario dire a quale controller andare.

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

Sì, in particolare, l'errore è che non hai specificato un controller nei valori predefiniti o nel percorso verso. –

+0

Grazie. Immagino di aver supposto che "API /" lo farebbe. –

+0

OK. Questo mi ha fatto diventare parte di questo ... ma ora quando aggiungo questa rotta (API/apilogin), non lo riconosce: routes.MapRoute ( nome: "APILogin", url: "API/apilogin ", impostazioni predefinite: nuovo {controller =" API ", action =" apilogin "} ); routes.MapRoute ( nome: "DefaultMessage", url: "API/{action}", default: new {regolatore = "API", action = "MessageGateway"} ); routes.MapRoute ( nome: "DefaultNoParms", url: "{Controller}/{action}", default: new {regolatore = "API", action = "Login"} ); –

Problemi correlati