【发布时间】:2016-08-03 04:33:20
【问题描述】:
在WebApiConfig 我已添加到路线:
config.Routes.MapHttpRoute(
name: "v1_Api",
routeTemplate: "api/v1/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "v1_ApiAction",
routeTemplate: "api/v1/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
在 ApiController 我有 2 GET 操作:
[HttpGet]
public async Task<IEnumerable<RequestModel>> Pending(){}
[HttpGet]
public async Task<IEnumerable<RequestModel>> Resolved()
当我尝试从 AngularJS 服务调用此操作之一时,出现 500 错误。
找到多个匹配请求的操作
当我只留下第二条路线时,这与我的行动相匹配 - 它运作良好。
"/api/v1/RequestRecipient/Pending"
如果有 2 条路线会出现什么问题?
【问题讨论】:
-
您希望
id是什么类型。您可能需要添加一个约束,因为它代表您显示的路径将匹配两个模板,因为 id 是可选的
标签: angularjs asp.net-web-api routing asp.net-web-api-routing