Вот моя конфигурация маршрутизации:asp.net маршрутизации Web Api не работает
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."
}
Я пробовал '[FromUri]', но это не сработало. – ataravati
ОК, похоже, вам нужно указать имя, например: 'public object Product ([FromUri (Name =" id ")] string name)'. – ataravati
Спасибо за рекомендуемый способ! – ataravati