新しいコントローラー アクション メソッドに取り組んでいるのですが、なぜ 405 が表示されるのか少し混乱しています。
API で既にいくつかの GET 属性付きメソッドを定義しており、それらはすべて期待どおりに機能します。例として、これはうまくいきます:
[GET("entries/{page}"), JsonExceptionFilter]
public HttpResponseMessage GetEntries(int page)
それでも、私の新しいメソッドは次のように定義されています。
[GET("search/{searchTerm}/{page}"), JsonExceptionFilter]
public HttpResponseMessage Search(string searchTerm, int page)
405を返しています
API で routes.axd の URL にアクセスすると、テーブルに次のようなエントリが表示されます。
GET, HEAD, OPTIONS users/search/{searchTerm}/{page}
これはすべて正しいように見えます。クライアント側では、HttpClient を使用して両方のリクエストで同じアプローチを使用しています。
var response = httpClient.GetAsync(ApiRootUrl + "users/search/" + searchTerm + "/" + page).Result;
Fiddler から get を実行しても、405 が返されます。
応答の RequestMessage を見ても正しいように見えます。
"{Method: GET, RequestUri: 'http://localhost:51258/users/search/jam/0'"
これには完全に困惑しました。
何がうまくいかないのかを明らかにするために、他に何を試みることができますか?