2012-01-23 45 views
8

En la ruta por defecto MVCEnrutamiento: ¿Cómo ocultar el nombre de la acción en url?

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

cada vez que se accede a la acción index, la URL no se muestra el nombre de la acción cuando se accede a la acción "Índice".

Me gustaría obtener ese comportamiento en un controlador diferente, que es la recuperación de datos para un solo elemento. Me gustaría que la acción predeterminada se denomine "obtener" y para esta acción me gustaría que la URL no muestre el nombre de la acción, solo el controlador y la identificación del elemento.

pensé que una ruta similar a la anterior, así:

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

que hacer el truco, pero me da una URL como localhost: xxxx/artículo/Obtener/152 ... ¿Qué ¿Me estoy perdiendo?

Respuesta

13

Prueba esto:

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

Jaja, que hace el truco! ¡Gracias! –

+0

Aceptar como respuesta :) – robasta

+0

Listo. Lo siento, tenía la intención de hacerlo ayer, pero con el tiempo mínimo impuesto por SO me fui a casa antes de llegar a hacerlo; o) –

0

Prueba esto:

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