/// <summary> /// Adds nested route with custom action name. Eg: to add parentCategory/{parentId}/actionName/{childCategoryId} /// eg: Fund/{fundId}/investorcommitments/{investorId} /// </summary> /// <param name="routes"></param> /// <param name="actionName"></param> /// <param name="parentCategory"></param> /// <param name="childCategory"></param> /// <param name="act"></param> public static void AddNestedActionRoute(RouteCollection routes, string actionName, string parentCategory, string childCategory, RouteAction act) { // Fund/fundId/Action/childCategoryId string parentCategoryIdName = "id"; string route = string.Empty; route = parentCategory + "/{" + parentCategoryIdName + "}/" + actionName + "/{" + childCategory + "Id}"; string route_name = RouteNames.GetActionRouteName(actionName, parentCategory, childCategory, act); _routeNameToRoute.Add(route_name, routes.MapRouteWithName( route_name, // Route name route, // URL with parameters new { controller = parentCategory, action = actionName }, // Parameter defaults new { httpMethod = new HttpMethodConstraint(GetHttpVerb(act)) } )); }