Hi,
I read this article about how you can prefix routes in ruby on rails. I want to be able to do the same thing with asp.net mvc
So I want to be able to define a route like :
/photographers/1/photos/2 //photo 2 of photographer with id 1
/photographers/1/photos //all of photographer with id 1
Any tips ?
EDIT:
"photographers/{id}/photos/{photoID}" - seems to do the job quite ok, BUT how can I support
RedirectToAction<PhotosController>(x => x.Add());
I would like to redirect to : /photographers/1/photos/add
From stackoverflow
-
You could use regex routing or use wildcards in your routing table so that the {id*} matches the
/1/photos/2
for the photographers default controller, parse the string, and redirect to an appropriate action.Also take a look at this post about nested resources.
RouteTable.Routes.Add( new Route { Url = "events/[eventId]/tickets/[action]/[id]", Defaults = new { controller = "Tickets", action = "List", id = (string)null }, RouteHandler = typeof(MvcRouteHandler) });
-
Define your route like this:
routes.MapRoute( "Photographers", "photographers/{id}/photos/{photoID}", new { controller = "Photographers", action = "Photo", photoID = null });
Then define your controller action like this:
public ActionResult Photo(int id, int? photoID) { // If photoID is not null, show just that photo. // Otherwise, show all photographs. }
0 comments:
Post a Comment