AI OnAI Off
I think the problem might be that your custom route start from Root page and not from Start page (that is looks for a page "catalog" under root and not under start page). You can register your route to start routing under start page instead as:
var urlSegmentRouter = ServiceLocator.Current.GetInstance<DefaultUrlSegmentRouter>();
urlSegmentRouter.RootResolver = (sd) => sd.StartPage;
MapContentRouteParameters parameters = new MapContentRouteParameters()
{
UrlSegmentRouter = urlSegmentRouter,
};
routes.MapContentRoute(
"customRoute",
"catalog/products/phones/details/{phoneurl}",
new { action = "index", phoneurl=UrlParameter.Optional},
parameters);
Hi,
I have a problem with a custom route that I'm trying to configure. I saw that a very similar problem was already discussed here, for instance at this topic, but to my shame I could not understand how to deal correctly with a routes.
I have a page of type ProductDetailsPage. This page can be placed in any place of the content tree under Home/Catalog page. In ProductDetailsPageController I have an index action, that accepts parameter productUrl(it is a short friendly url token, like iphone5s_white_32gb): public ActionResult Index(string producturl) And I want to navigate to the details page with a parameter, smth like this: http://localhost:37002/catalog/products/phones/details/blablabla where blablabla is considered as a string parameter of index action.
I've tried to create a route like this
//RouteTable.Routes.MapPageRoute("customRoute",
"catalog/products/phones/details/{phoneurl}",
new { action = "index", phoneurl=UrlParameter.Optional});
but getting a 404 error when trying to navigate by this: http://localhost:37002/catalog/products/phones/details/blablabla link. Everytihng is ok when I'm using http://localhost:37002/catalog/products/phones/details?producturl=blablabla. How can I change the route to have a possibility to navigate without querystring?