views:

23

answers:

1

I'm using asp.net routing in a webforms app.

I would like to achieve the following url format:

http://[domain]/{parent-category}/{sub-category}/{sub-category}

where the right most category is available as a route value.

Currently I have achieved this with the following route:

        routes.MapPageRoute(
            "category-browse",
            "{*category}",
            "~/category.aspx"
        );

This will pass all of the categories i.e. "trainers/running/nike-running-trainers" so I can grab the last one with a bit of string manipulation.

Is there a better way of doing this?

A: 

I assume you can have an arbitrary number of sub-category parameters. If that's the case, the approach you're doing is the right one. ASP.NET Routing doesn't support having a catch-all parameter in the middle of the URL. It must be at the end. So what you described is the only way to do it short of writing your own custom RouteBase implementation.

Haacked