コード例 #1
0
        /// <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)) }
                                      ));
        }