コントローラのアクションでDictionary型のGETパラメータを受け取るには、以下のようなフォーマットでパラメータを記述します。
https://example.com/api/Sample/SampleData?param[key1]=val1¶m[key2]=val2&...
上記のリクエストを投げると、アクションで定義したparam
引数で以下のように値を受け取ることができます。
[Route("api/[controller]")]
public class SampleController : Controller
{
[HttpGet("[action]")]
public Data SampleData(Dictionary<string, string> param)
{
var val1 = param["key1"];
var val2 = param["key2"];
return ...;
}
}
注意点
先ほどの例でparam
パラメータ無しのリクエストを投げるとアクションが見つからずエラーが発生します。
https://example.com/api/Sample/SampleData
=> 500 Error
空のディクショナリを渡すには、以下のような値無しのparam
パラメータ付きのリクエストを投げる必要があります。
https://example.com/api/Sample/SampleData?param
[HttpGet("[action]")]
public InitData Init(Dictionary<string, string> param)
{
var _ = param.Count; // => 0
return ...;
}
Top comments (0)