私はこれに似た構造の関数を持っています:
[HttpGet]
public HttpResponseMessage GetValuesForList(List<int> listOfIds)
{
/* create model */
foreach(var id in listOfIds)
model.Add(GetValueForId(id)
/* create response for model */
return response;
}
ただし、メソッドの Get リクエストを実行すると、次のようになります。
{{domain}}/Controller/GetValuesForList?listOfIds=1&listOfIds=2
listOfIds
デバッグ時にそれが nullであることを示すエラーが発生します。私たちのコントローラには、正常に動作する多数の公開 HttpGet メソッドがあり、パラメータを単一の int に変更すると動作します。int[]
パラメータの型をandに変更しようとしましたIEnumerable<int>
が、変更はありません。
ただし、呼び出しを HttpPost に変更し、リストを x-www-form-urlencoded 値として渡すと、メソッドは機能します。
リストを Get メソッドに渡すことは可能ですか、それとも Post を使用する必要がありますか? 実際には post メソッドではないため (値の JSON モデルを返し、サーバーには何も保存されないため)。