web-dev-qa-db-ja.com

Web APIを介して整数のリストを渡すことは可能ですか、それとも文字列パラメータを使用する必要がありますか

GETリクエストで複数のProductIdをWebAPIに送信する必要があるシナリオがあります。

私のasp.netWeb APIコントローラーには、ActionメソッドのパラメーターをList<int> productIdsタイプにする方法があります。いいえと想定しています。このように渡す必要がありますか?ProductIds = 1,2,3そして、それをstring productIdsとして受け入れます。

もっと良い方法があれば教えてください。

7
Blake Rivell

パラメータとしてint[]を受け入れることを示すことができ、Web APIは、期待どおりにコンマ区切りの文字列を配列にマッピングする必要があります。クエリ文字列からこれらの値を期待していることをWebAPIに通知するには、[FromUri]属性を含める必要がある場合があります。

public IEnumerable<Product> GetProducts([FromUri] int[] ProductIds)
{
      // Your code here.
}

次の方法で、複数の値が同じクエリ文字列パラメーターにマップされることを示すこともできます。

?ProductIds=1&ProductIds=2&ProductIds=3...
5
Rion Williams