Custom MVC Routing with EPiServer 7


Hi all

Really hoping someone can help me with this one. Im working on a version 7 MVC site. I have a page which it has its own template, but that page can also be loaded from else where in the site through a modal window, in this case it will have different HTML markup, there are also two options for the data that is displayed on that page, this option will toggle between a couple of properties available on the page.

So what I am trying to do is add a custom route to do two things:

  1. Call a seperate method from my controller in order to call a different view
  2. Pass a variable in another segment in the URL to control the toggling of properties

The perfect URL structure would give me a URL structure like the following (where node is the page name alias from EPiServer):{node}/{variable}/{method}/

Although I would still be very happy just with:{node}/{method}/{variable}/

With the default routing in EPiServer the following works:{node}/{method}

However as soon as you add the variable to the end, I get a 404. I have tried adding the following custom route to the RegisterRoutes override in the Global.asax file:


     "ModalLayout", // Route name

     "{node}/{action}/{myvariable}/", // URL with parameters

     new { controller = "MyController", action = "Index", myvariable = "defaultvalue" });

I have tried several variations of the above including adding the controller to the URL but I get 404 errors with everything I try. Can anyone recommend the best way to approach this?

Many Thanks
Kind Regards


Jul 22, 2013 10:35
Jul 22, 2013 19:27

If you want to keep your routing within the EPiServer context, you'll need to use MapContentRoute instead of the standard MVC MapRoute. I think for your particular case, I'd suggest keeping it in the EPiServer context.

I'm guessing you've checked out Joel's article on custom routing ( There's also this forum post that I've found helpful (

What other things have you tried?

Jul 22, 2013 19:27

Hi Chris 

Thank you very much for your response. It rurned out when I changed to use:


Instead of the RouteCollection it started working straight away. In case anyone else comes across this with a similar problem, my solution was:

     new { action = "modal" });

Many thanks for your help Chris

Kind Regards

Jul 23, 2013 11:43
This thread is locked and should be used for reference only. Please use the Episerver CMS 7 and earlier versions forum to open new discussions.
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.