好吧,我正在使用带有属性路由的ASP.NET Web API 2。我有两个控制器,它们的路线差别很小:
[RoutePrefix("api/menus")]
public class MenusController : ApiController {
}
[RoutePrefix("api/menus/items")]
public class MenuItemsController : ApiController {
}
我在两个控制器中都有所有CURD方法。现在除了POST
之外,所有方法都正常工作。每当我尝试调用POST
的{{1}}方法时,我都会收到以下错误:
MenuItemsController
有趣的是,Multiple controller types were found that match the URL. This can happen if attribute routes on multiple controllers match the requested URL.
的{{1}}方法完全正常。它只是导致问题的POST
MenusController
方法。
我也尝试使用MenuItemsController
的{{1}}属性,但是徒劳无功。
非常感谢任何帮助。
修改
我的POST
方法“路线如下:
Order
Route
答案 0 :(得分:1)
Aneeq 尝试加入两个控制器:
[RoutePrefix("api/menus")]
public class MenusController : ApiController
{
[Route("")]
public string Get()
{
return "menus";
}
}
[RoutePrefix("api/menus")]
public class MenuItemsController : ApiController
{
[Route("items")]
public string Get()
{
return "menus items";
}
}
我已经测试并且工作正常。这很酷吗?
PS:我使用“Get”来简化解决方案。