2009-09-04 26 views
12

Estoy buscando una opción de enrutamiento similar a la funcionalidad de rutas RESTFul anidadas disponible a través de Rails. El proyecto SimplyRestful en MvcContrib no parece estar activo por más tiempo ni parece estar actualizado con la versión de 1.0 MVC.Soporte de ASP.Net MVC para recursos anidados?

Este es el esquema de URI que estoy buscando,

/Actividad/10/Tareas/1/Editar o /Actividad/10/Tareas/Editar/1

Simplemente paraíso' Pude hacerlo funcionar y toda la documentación que encontré describe el escenario no anidado. No parece como que sería tan difícil ....

Esto es lo que he estado trabajando con ...

 
    routes.MapRoute(null, 
     "Activity/{activityId}/Task/{action}/{id}", 
     new { controller = "Task", action = "Edit", activityId = "", id = "" }); 

Respuesta

13

Añadir un valor predeterminado para activity:

routes.MapRoute(null, 
    "Activity/{activityId}/Task/{action}/{id}/{activity}", 
    new { 
     controller = "Task", 
     action = "Edit", 
     id = "", 
     activityId = "", 
     activity = "" }); 

Recuerde también que esta ruta sólo se transmiten las direcciones URL en el formulario

/Activity/10/Edit/1/theActivity 

mientras que su ejemplo

/Activity/10/Edit/1 

será recogido por la ruta por defecto, el establecimiento de los valores de ruta a

controller = "Activity" 
action = "10" 
id = "Edit/1" 

Phil Haack de Routing Debugger para ASP.NET MVC es extremadamente útil para encontrar la manera de trabajar de estas cosas ...

+0

Gracias. Me di cuenta de que lo había pegado por accidente antes de publicarlo. – nerraga

+0

El depurador de enrutamiento mencionado apareció un par de veces en mi lector, lo olvidé por completo. ¡Gracias! – nerraga

Cuestiones relacionadas