ルート マップは、おそらくWebApiConfig.csの次のようなものです。
routes.MapHttpRoute(
name: "API Default",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional });
ただし、同じ http メソッドで複数のアクションを実行するには、次のようにルートを介して webapi に詳細情報を提供する必要があります。
routes.MapHttpRoute(
name: "API Default",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional });
routeTemplate にアクションが含まれていることに注意してください。詳細はこちら: http://www.asp.net/web-api/overview/web-api-routing-and-actions/routing-in-aspnet-web-api
アップデート:
さて、私はあなたが何であるかを理解したと思うので、ここで別の見方をします:
おそらく、action url パラメーターは必要なく、目的のコンテンツを別の方法で記述する必要があります。メソッドが同じエンティティからデータを返していると言っているので、パラメーターに説明を任せてください。
たとえば、2 つのメソッドを次のように変更できます。
public HttpResponseMessage Get()
{
return null;
}
public HttpResponseMessage Get(MyVm vm)
{
return null;
}
MyVm オブジェクトで渡すデータの種類は何ですか? URI を介して変数を渡すことができる場合は、その方法をお勧めします。それ以外の場合は、リクエストの本文でオブジェクトを送信する必要があり、GET を実行するときは HTTP ではありません (動作しますが、MyVm の前で [FromBody] を使用するだけです)。
これは、アクション名や [HttpGet] 属性を使用しなくても、1 つのコントローラーで複数の GET メソッドを使用できることを示しています。