Please check my WebApiConfig, API Controller and angular Service. 1st route is working fine but 2nd and 3rd not calling by angularjs. though web api route is ok.
--WebApiConfig
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Formatters.Remove(config.Formatters.XmlFormatter);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{param}",
defaults: new { param = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "Api2",
routeTemplate: "api/{controller}/{action}/{param1}/{param2}",
defaults: new { param1 = RouteParameter.Optional, param2 = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "Api3",
routeTemplate: "api/{controller}/{action}/{param1}/{param2}/{param3}",
defaults: new { param1 = RouteParameter.Optional, param2 = RouteParameter.Optional, param3 = RouteParameter.Optional }
);
}
}
--Web API Controller
[HttpPost]
public IHttpActionResult InsertAcademicInfo(AcademicInformation[] param1, AcademicResult[] param2)
{
return Ok(_academic.InsertAcademicInformation(param1, param2).Data);
}
--Angular Service
mainApp.factory('AcademicServices', ['$http', '$rootScope', function ($http, $rootScope) {
return {
Save: function (academic, results) {
return $http({
url: '/Api/ApiAcademic/InsertAcademicInfo',
method: 'POST',
data: { param1: academic, param2: results },
async: false
});
},
};
}]);
api/{controller}/{action}/{param1}/{param2}:param1andparam2are supposed to be present in the URL. However in your Http POST, the url isapi/ApiAcademic/InsertAcademicInfoand the parameters are in the post body so this won't work! Can you include the rest of your controller and mention which actions work and which don't?