I experience the routing in the MVC applicaiton
i had the following actions in the API controller
[HttpGet]
public List<Customer> Get()
{
//gets all customer
}
[ActionName("CurrentMonth")]
public List<DocumentModel> GetCustomerByCurrentMonth(string id)
{
}
[ActionName("customerById")]
public DocumentModel GetCustomerById(string id)
{
}
[ActionName("customerByUsername")]
public DocumentModel GetCustomerByUsername(string username)
{
}
when i state the following the routing in the WebApiConfig.cs
config.Routes.MapHttpRoute(
name: "ActionApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "ActionApiName",
routeTemplate: "api/{controller}/{action}/{username}",
defaults: new { Action = "GetCustomerByUsername", username = RouteParameter.Optional }
);
when i ran lauch the web api app and try to access the api, it redirect me to the 404 page
I set a break point in my web api, but execution never hit the break point. it means that the routing is not properly configured. I move the ActionApiName configuration to the top
config.Routes.MapHttpRoute(
name: "ActionApiName",
routeTemplate: "api/{controller}/{action}/{username}",
defaults: new { Action = "GetCustomerByUsername", username = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "ActionApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
then the break point was hit and Json data was return.