Hi Minco Zhou,
Thank you for contacting us.
In ASP.NET you would register your routes directly to the RouteTable.Routes collection on Application_Start in your Global.asax, this is too early for a Sitefinity application as it has not yet initialized all of its components, which happens on Bootstrapping. So actual Routes registration in Sitefinity happens inside our implementation of the RegisterRoutes method of the above discussed Telerik.Sitefinity.Abstractions.Bootstrapper class. When you hook to the Bootstrapper.Initialized event you have to filter by the CommandName argument of the event, to be able to plug your logic after the execution of our RegisterRoutes logic.
To put it more clearly - if you want 'http://yoursitedomain/customroute' to open the 'CustomPage.aspx' you'll need something like this:
sender, EventArgs e)
Telerik.Sitefinity.Abstractions.Bootstrapper.Initialized += Bootstrapper_Initialized;
sender, Telerik.Sitefinity.Data.ExecutedEventArgs e)
//register route to the physical page ~/CustomPage.aspx
There is a detailed article on this subject : http://www.sitefinity.com/blogs/stanislav-velikovs-blog/2013/11/07/adding-custom-route-for-static-web-forms-in-sitefinity-sites
Do you want to have your say in the Sitefinity development roadmap? Do you want to know when a feature you requested is added or when a bug fixed? Explore the Telerik Sitefinity CMS Ideas&Feedback Portal
and vote to affect the priority of the items