public static void ConfigureWebApiRoutes(RouteCollection routes) { string defaultResourceName = RouteNames.DefaultResource; // Search string route_name = RouteNames.GetRouteName(defaultResourceName, RouteAction.SEARCH); _routeNameToRoute.Add(route_name, routes.MapRouteWithName( string.Format(route_name), // Route name "{controller}/search", // URL with parameters new { action = "Search" }, // Parameter defaults new { httpMethod = new HttpMethodConstraint("GET") } )); // New route // GET /Photo => Get() //route_name = RouteNames.GetRouteName(defaultResourceName, RouteAction.LIST); //_routeNameToRoute.Add(route_name, routes.MapRouteWithName( // string.Format(route_name), // Route name // "{controller}", // URL with parameters // new { action = "Get" }, // Parameter defaults // new { httpMethod = new HttpMethodConstraint("GET") } // )); // GET /Photo/1 => Get(1) //string route_name = "get_default"; //route_name = RouteNames.GetRouteName(defaultResourceName, RouteAction.SHOW); //_routeNameToRoute.Add(route_name, routes.MapRouteWithName( // string.Format(route_name), // Route name // "{controller}/{id}", // URL with parameters // new {action = "Get", id = UrlParameter.Optional}, // Parameter defaults // new {httpMethod = new HttpMethodConstraint("GET")} // )); route_name = RouteNames.GetRouteName(defaultResourceName, RouteAction.SHOW); _routeNameToRoute.Add(route_name, routes.MapRouteWithName( string.Format(route_name), // Route name "{controller}/{id}", // URL with parameters new { action = "Get" }, // Parameter defaults new { httpMethod = new HttpMethodConstraint("GET") } )); // Create // POST /Photo => POST() or POST(Photo photo) route_name = "create_default"; route_name = RouteNames.GetRouteName(defaultResourceName, RouteAction.CREATE); _routeNameToRoute.Add(route_name, routes.MapRouteWithName( string.Format(route_name), // Route name "{controller}", // URL with parameters new { action = "Post" }, // Parameter defaults new { httpMethod = new HttpMethodConstraint("POST") } )); // UPDATE // POST or PUT /Photo/1 => Put(int id, Photo photo) route_name = "update_default"; route_name = RouteNames.GetRouteName(defaultResourceName, RouteAction.UPDATE, false); _routeNameToRoute.Add(route_name, routes.MapRouteWithName( string.Format(route_name), // Route name "{controller}/{id}", // URL with parameters new { action = "Put" }, // Parameter defaults new { httpMethod = new HttpMethodConstraint("PUT") })); route_name = "update_default_low_rest"; route_name = RouteNames.GetRouteName(defaultResourceName, RouteAction.UPDATE); _routeNameToRoute.Add(route_name, routes.MapRouteWithName( string.Format(route_name), // Route name "{controller}/{id}", // URL with parameters new { action = "Put" }, // Parameter defaults new { httpMethod = new HttpMethodConstraint("POST") } )); // DELETE // GET /Photo/1/delete => delete(int id) route_name = "delete_default_lowrest"; route_name = RouteNames.GetRouteName(defaultResourceName, RouteAction.DELETE, true); _routeNameToRoute.Add(route_name, routes.MapRouteWithName( string.Format(route_name), // Route name "{controller}/{id}/delete", // URL with parameters new { action = "Delete" }, // Parameter defaults new { httpMethod = new HttpMethodConstraint("GET") } )); // DELETE /Photo/id => delete(int id) route_name = "delete_default"; route_name = RouteNames.GetRouteName(defaultResourceName, RouteAction.DELETE, false); _routeNameToRoute.Add(route_name, routes.MapRouteWithName( string.Format(route_name), // Route name "{controller}/{id}", // URL with parameters new { action = "Delete" }, // Parameter defaults new { httpMethod = new HttpMethodConstraint("DELETE") } )); routes.MapRouteWithName( "Default", "{controller}/{action}", new { controller = "Home", action = "Index" }, null ); isInitialized = true; }