Methods 带有多个Get方法的Web API

Methods 带有多个Get方法的Web API,methods,asp.net-web-api,Methods,Asp.net Web Api,我有一个webapi服务,在conroller上有3个Get方法 public IQueryable Get() publicIQueryableGet(字符串名称) public ihttpackationresult Get(int-id) 我看到一些aswers建议在Get方法上使用[Route()]属性,并调用该属性 但我也看到过路由模板被覆盖以处理操作请求的示例 routes.MapHttpRoute("DefaultApiWithId", "Api/{controller}/{i

我有一个webapi服务,在conroller上有3个Get方法

  • public IQueryable Get()
  • publicIQueryableGet(字符串名称)
  • public ihttpackationresult Get(int-id)
我看到一些aswers建议在Get方法上使用
[Route()]
属性,并调用该属性

但我也看到过路由模板被覆盖以处理操作请求的示例

routes.MapHttpRoute("DefaultApiWithId", "Api/{controller}/{id}",
                    new { id = RouteParameter.Optional }, new { id = @"\d+" });

routes.MapHttpRoute("DefaultApiWithAction", "Api/{controller}/{action}");
在我的例子中,第二个解决方案可以工作吗?我有一个Get方法可以接受Int参数,另一个可以接受string参数,我该如何定义它


或者使用属性的第一个选项是正确的方法吗?

属性路由较新。我喜欢它的原因很简单,规则就在它应该匹配的操作的正上方。属性路由比较新。我喜欢这个简单的事实,规则就在它应该匹配的动作之上。