2012-01-23 7 views
8

Nel MVC percorso di defaultRouting: come nascondere il nome dell'azione nell'URL?

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

ogni volta che si accede all'azione index, l'url non mostra il nome azione quando si accede l'azione "Indice".

Vorrei ottenere questo comportamento su un controller diverso, che sta recuperando i dati per un singolo elemento. Vorrei che l'azione predefinita fosse denominata "get" e per questa azione vorrei che l'url non visualizzasse il nome dell'azione, solo il controller e l'id dell'oggetto.

ho pensato che un percorso simile a quello di cui sopra, in questo modo:

routes.MapRoute(
      "item_details", 
      "item/{action}/{id}", 
      new { controller = "item", action = "Get" } 
      ); 

sarebbe fare il trucco, ma mi dà un URL del tipo localhost: xxxx/item/Get/152 ... Cosa mi sto perdendo?

risposta

13

Prova questo:

routes.MapRoute(
     "item_details", 
     "item/{id}", 
     new { controller = "item", action = "Get" } 
     ); 
+0

Haha, che fa il trucco! Grazie! –

+0

Accettare come risposta :) – robasta

+0

Fatto. Scusate, intendevo farlo ieri, ma con il tempo minimo imposto da SO sono andato a casa prima di farlo, o) –

0

Prova questa:

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