私はこの質問に対する回答を見つけることができないので、ここに掲載しています。これは基本的なルーティングの質問かもしれないし、おそらく私はちょうど何かを見逃している。私はコントローラでGetAll()メソッドを持っているWebAPI2プロジェクトを持っています。私はRoutePrefixを含む属性ルーティングを使用しています。私がPostmanを使ってメソッドをテストすると、それはうまく動作しますhttp://localhost/api/v1/Suppressionsそして私のMongo DBコレクションからJSONのリストを返します。私は "リソースが見つかりません"エラーhttp://localhost/api/v1/Suppressions?name=abcを受け取ると思ったが、その代わりGetAll()メソッドを呼び出すと、URLにパラメータを追加してテストを行った。WebAPIと属性ルーティング
ルーティング中にパラメータが無視され、唯一のものが使用されます(もちろん、Get(文字列名)のようなパラメータの名前が付けられたメソッドがない限り)。その場合、誰かが誤ってパラメータまたはパラメータのリストでメソッドを呼び出した場合、GetAll()メソッドに追加する必要があるルート制約がありますか?
お返事ありがとうございます。しかし、私のメソッドGetAll()がパラメータを受け入れない場合、私の既存の呼び出しでどのように処理しますか?ルーティングがうまくいるとユーザーが判断した場合、パラメータを使用してAPIを呼び出したユーザーはどのようにわかりますか? – user2337213
[HttpContext.Current.Request.QueryString](https://msdn.microsoft.com/en-us/library/system.web.httprequest.querystring(v = vs.110))を使用してクエリパラメータ値を取得できます。 aspx)。 – returnsvoid
ああ、そうです。ご協力いただきありがとうございます!両方の答えは役に立ちましたが、元の質問に答えるルーティング中にクエリパラメータが無視されるという回答があるため、この回答を受け入れています。また、HttpContext.Current.Request.QueryStringを使用してパラメータを取得し、必要に応じて404を返すことができることを通知します。 – user2337213