Take the 2-minute tour ×

Can anyone tell me how i can manually edit my naming convention of my routes.. Let me explain. I am programming everything in english as per microsoft standards but i require

  www.mydomain.com/Reserva  (Spanish for reservation)

I actually have the following

ReservationController and then below views i have a folder called Reservation with a file called index.aspx (my view).

So basically i am happy with the naming convention i have but currently it necessary to browse to


and not


to get my page to come up

I have the default MapRoute installed, what do i do to enable the above? any ideas?

            "Default",                                              // Route name
share|improve this question
Thanks for everyones comments, i am going to go with the create each route separately as i don't have that many, i know its not scalable... but it fixes me currently.. thanks –  mark smith Dec 3 '09 at 14:32
add comment

3 Answers

up vote 5 down vote accepted

You could just create a new route in that same file like so:

            "Reserva",                                              // Route name
            "Reserva/{action}/{id}",                           // URL with parameters
            new { controller = "Reservation", action = "Index", id = "" }  // Parameter defaults

and put it in your file above the default route.

share|improve this answer
How are you going to handle the actions? –  tvanfosson Dec 2 '09 at 16:45
Actions could get tricky if you're trying to do the same thing...you could wind up with a whole mess of routes to handle each action - if too many routes are a concern (which makes sense - you wouldn't want a route to correspond to each and every action - sheesh) then you'd probably need to look into one of the more robust solutions offered by the people with WAY more rep than I have... ;) –  onekidney Dec 2 '09 at 17:03
add comment

In this case I would probably change the names of the controllers/actions to the native language (assuming you don't need support for multiple languages) and keep my variables, etc. in English. Otherwise, I think you're stuck with having a route per controller/action pair to map each action from Spanish to it's English equivalent. At that point you may want to create your own route handler.

share|improve this answer
add comment

OneKidney's answer is the simplest solution for you, but I just wanted to point out that it doesn't easily scale. If you needed to do this for lots of controllers, your routes could start getting out of control.

So another thing you can do is implement a new ControllerFactory. The default ControllerFactory class that ASP.Net MVC uses is what maps the text "Reservation" to the controller class, ReservationController. You can find lots of tutorials on how to implement and use your own logic for instantiating the correct controllers though. Here's the first one I came across.

share|improve this answer
add comment

Your Answer


