次のコードを使用すると:
public HttpResponseMessage Get()
{
return Request.CreateResponse(HttpStatusCode.OK, "Empty!");
}
public HttpResponseMessage Get(int id)
{
return Request.CreateResponse(HttpStatusCode.OK, id);
}
リクエストは、本来あるべきとおりに機能します。 GET: api/controller
ボディ「Empty!」でGET: api/controller/12
返し、ボディ「12」で 200 を返します。
しかし、コードを次のように変更するとすぐに:
public HttpResponseMessage Get()
{
return Request.CreateResponse(HttpStatusCode.OK, "Empty!");
}
public HttpResponseMessage Get(int itemId) //changed parameter name
{
return Request.CreateResponse(HttpStatusCode.OK, itemId);
}
すべてがデフォルトのメソッドにヒットし、「Empty!」を返します。
これは多くの命名規則の問題の 1 つだと思いましたが、パラメーターに特定の値の名前を付ける必要があると述べたドキュメントやその他の投稿は見つかりませんでした。
セマンティックな問題のように思えるかもしれませんが、なぜパラメーターに特定の名前を付けなければならないのか、または何が間違っているのかを知りたいです。なぜこれがうまくいかないのでしょうか?