【发布时间】:2012-10-09 06:27:11
【问题描述】:
我可能有一个蹩脚的问题,但我在一个 Url 中路由多个控制器时遇到了一些困难。所以我的问题是如何使用这样的网址:
GET http://foo.com/API/Devices/2/Parameters/2
最终device 和parameters 都是控制器,数字是ID。我对它们每个都有控制器,但是如何处理它们,将它们路由到适当的控制器?
有什么方向吗?
更新:
只是为了澄清我最终使用的解决方案并遵循以下答案。
路由sn-p:
config.Routes.MapHttpRoute(
name: "DeviceCommandsControllerHttpRoute",
routeTemplate: "api/devices/{deviceId}/commands/{id}",
defaults: new { controller = "devicecommands", id = RouteParameter.Optional }
);
控制器sn-p:
[HttpGet]
public DeviceCommand GetById(int id, int deviceId)
{ ... }
最后是网址:
GET http://localhost:49479/api/Devices/2/Commands/1
【问题讨论】: