【发布时间】:2017-06-28 19:48:47
【问题描述】:
我的 WebApiConfig.cs 文件中有以下内容:
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "UserLogin",
routeTemplate: "api/{controller}/{UserInitials}/{UserPin}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "BinQuery",
routeTemplate: "api/{controller}/{UserID}/{UserCode}/{BinCode}",
defaults: new { id = RouteParameter.Optional }
);
//This one below does not work as one above is always taken first!!
config.Routes.MapHttpRoute(
name: "BarcodeQuery",
routeTemplate: "api/{controller}/{UserID}/{UserCode}/{BarCode}",
defaults: new { id = RouteParameter.Optional }
);
目前,我希望能够通过 URL 指定要使用哪个控制器,因为最后一个条目具有三个参数,它永远不会被选择,而中间一个会。
例如,我想要以下 URL 来调用我指定的控制器:
http://myserver/api/UserLogin/AS/1234
http://myserver/api/BinQuery/AS/1234/ABC123
http://myserver/api/BarcodeQuery/AS/1234/3424532543
希望这有点清楚我想要实现的目标。
【问题讨论】:
-
他们有相同的模板。您必须决定如何将一个与另一个区分开来。
标签: c# asp.net-web-api2 asp.net-web-api-routing