Web API 2 属性ルーティングを使用してカスタム API を設定しようとしています。関数が呼び出されるようにルートが機能していますが、何らかの理由で、すべてが正しく機能するために最初のパラメーターを渡す必要があります。サポートしたい URL は次のとおりです。
http://mysite/api/servicename/parameter1
http://mysite/api/servicename/parameter1?parameter2=value2
http://mysite/api/servicename/parameter1?parameter2=value2¶meter3=value3
http://mysite/api/servicename/parameter1?parameter2=value2¶meter3=value3&p4=v4
最後の 3 つの URL は機能しますが、最初の URL には「要求に一致するコントローラー 'コントローラー名' でアクションが見つかりませんでした」と表示されます。
私のコントローラーは次のようになります。
public class MyServiceController : ApiController
{
[Route("api/servicename/{parameter1}")]
[HttpGet]
public async Task<ReturnType> Get(string parameter1, DateTime? parameter2, string parameter3 = "", string p4 = "")
{
// process
}
}