当试图为以下问题寻找解决方案时:
大多数情况下,我遇到了“发现多个操作”的问题。如果路由机制发现多个与路由匹配的动作,则会抛出异常 500。
例如,ValuesController 中有两个动作:
[HttpGet]
public IEnumerable<String> Active()
{
var result = new List<string> { "active1", "active2" };
return result;
}
public IEnumerable<string> Get()
{
return new[] { "value1", "value2" };
}
与默认路由匹配:
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
和
GET: /api/values
发现多个操作会出错。
我的问题:如何通过选择指定的操作绕过异常“找到多个操作”(选择第一个匹配的操作也可以)。
更新 1:更新来自 tugberk 的评论,感谢指出。
更新2:从迈克的评论更新,似乎这个问题不太正确,所以我改变了提问的方式,没有提到路由约束。
谢谢