40

Web API 2 属性ルーティングを使用してカスタム API を設定しようとしています。関数が呼び出されるようにルートが機能していますが、何らかの理由で、すべてが正しく機能するために最初のパラメーターを渡す必要があります。サポートしたい URL は次のとおりです。

http://mysite/api/servicename/parameter1
http://mysite/api/servicename/parameter1?parameter2=value2
http://mysite/api/servicename/parameter1?parameter2=value2&parameter3=value3
http://mysite/api/servicename/parameter1?parameter2=value2&parameter3=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
    }
}
4

1 に答える 1