I’m try to use ASP.NET 4.0 WebForms Routing. Here is my RegisterRoutes function:
void RegisterRoutes(RouteCollection routes)
{
routes.Ignore("{resource}.axd/{*pathInfo}");
routes.MapPageRoute("GoodInfo", "catalog/good/{good}", "~/GoodInfo.aspx");
routes.MapPageRoute("GoodGroup", "catalog/group/{group}", "~/default.aspx");
}
For pages like /catalog/group/{group} everything is ok. But there are problems with pages catalog/good/{good}.
First strange thing: when I open this page it calls twice. So I see what value comes for Page.RouteData.Values["good"]. First time in Page.RouteData.Values["good"] has the right value (my goodId) but the second time I got the string value “WebResource.axd”!
So my highslide JavaScript does not work on the page. And when I click on highslide image the page reloads instead of executing the JavaScript.
I added this line routes.Ignore("{resource}.axd/{*pathInfo}"); but it didn’t helped me. Any ideas?
I have solved my problem! The solution consists of 2 parts.
Firstly I changed my scripts definition from
to
Thanks MilkyWayJoe fot that solution.
Secondly I added Ignore Routing
instead of:
So my web resources have no more routes on pages like
http://mysite.com/catalog/good/41Also I have script events on the page like
http://mysite.com/catalog/good/41/event/seq/1. To catch all parameters I add to my route rules thisAnd don’t forget that your
Ignoredeclarations must be placed beforeMapPageRoutedeclarations: