MVC 2 AreaRegistration Routes Order

.net-3.5, asp.net-mvc, asp.net-mvc-routing, routes

Solution

Currently it's not possible to order areas. However, I think it makes sense to try and make each area as independent from other areas as possible so the order doesn't matter.

For example, instead of having the default {controller}/{action}/{id} route, maybe replace that with specific routes for each controller. Or add a constraint to that default route.

We are mulling over options to allow ordering, but we don't want to overcomplicate the feature.

Problem

I noticed that in MVC 2 Preview 2, AreaRegistration is loading the routes for each area in an arbitrary order. Is there a good way to get one before the other? For example, I have two areas - "Site" and "Admin". Both have a "Blog" controller. I would like the following: ``` /admin/ --> go to Admin's Blog controller / --> go to Site's Blog controller. ``` The problem is that it is loading the site's route first, so it is matching `{controller}/{action}/{id}` instead of `admin/{controller}/{action}/{id}` when I go to the url "/admin/". I then get a 404, because there is no Admin controller in the "Site" area. Both areas default to the "Blog" controller. I realize I could simply put `site/{controller}/...` as the url, but I would rather have it at the root if possible. I also tried keeping the default route in the global RegisterRoutes function, however, it is then not sent to the "Sites" area. Thanks in advance!

Original source