我有以下操作的控制器定義:多個HTTPGET在網絡API控制器動作
public IHttpActionResult Get(int id) {}
[ActionName("Orders")]
public IHttpActionResult GetOrders(int id) {}
我的路由如下:
config.Routes.MapHttpRoute(
name: "ControllerWithId",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional },
constraints: new { id = @"^[0-9]+$" }
);
config.Routes.MapHttpRoute(
name: "ControllerWithAction",
routeTemplate: "api/{controller}/{action}",
defaults: new { action = "Get" },
constraints: null
);
config.Routes.MapHttpRoute(
name: "ControllerWithIdAndAction",
routeTemplate: "api/{controller}/{id}/{action}",
defaults: new { id = RouteParameter.Optional },
constraints: new { id = @"^[0-9]+$"
};
我想打電話給GetOrders爲如下:
/api/Customers/1/Orders
不過,我得到異常:
多個動作中發現匹配的要求,即:獲取
什麼是在這種情況下,正確的路由?
應指定routeTemplate作爲'api/{controller}/{action}/{id}',特別是當'id'是可選的時。 – Irshu