Вот моя конфигурация маршрутизации:
config.Routes.MapHttpRoute(
name: "ActionApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
И вот мой контроллер:
public class ProductsController : ApiController
{
[AcceptVerbs("Get")]
public object GetProducts()
{
// return all products...
}
[AcceptVerbs("Get")]
public object Product(string name)
{
// return the Product with the given name...
}
}
Когда я пытаюсь api/Products/GetProducts/
, он работает. api/Products/Product?name=test
также работает, но api/Products/Product/test
не работает. Что я делаю неправильно?
UPDATE:
Вот что я получаю, когда пытаюсь api/Products/Product/test
:
{
"Message": "No HTTP resource was found that matches the request URI 'http://localhost:42676/api/Products/Product/test'.",
"MessageDetail": "No action was found on the controller 'Products' that matches the request."
}