MVC 4 Web サービスに新しいユース ケースがあります。クエリ文字列の引数のリストを Web API に渡す必要があります。
http://host/SomeWebApi?arg=x&arg=y
ICollection<string> arg
以前は、コントローラーのパラメーターとして使用して、Web サイトコントローラーでこれを簡単かつ簡単に実行しました。これは現在機能していますが、これは API ではなく Web ページです。
今、同じことの Web API バージョンを機能させようとして頭を壁にぶつけています。以下の簡単なテスト インターフェイスを作成しましたが、コレクション arg は常に null です。私も試してみましList<string>
たstring[]
。私は何を見落としていますか?
ルート登録:
config.Routes.MapHttpRoute(
name: "Experiment",
routeTemplate: "Args",
defaults: new
{
controller = "Storage",
action = "GetArgTest",
suite = UrlParameter.Optional,
},
constraints: new
{
httpMethod = new HttpMethodConstraint(new HttpMethod[] { new HttpMethod("GET") })
}
);
Web API コントローラー コード:
public string GetArgTest(ICollection<string> suite)
{
if (suite == null)
{
return "suite is NULL";
}
else
{
return "suite is NON-NULL";
}
}
「suite is NULL」という結果になるクエリ文字列をテストします。
http://localhost:5101/Args?suite=1&suite=2