因此,似乎ASP.NET Core在字典上的参数绑定方面有一些令人惊讶的行为。
例如:
IActionResult Get(string str_param, Dictionary<string,string> dic_param)
工作,它不会做你所期望的......呃......有时候。
如何绑定:
?str_param=value&dic_param[foo]=bar&dic_param[bar]=baz
正如你所希望的那样!
str_param=value
dic_param={foo, bar} {bar, baz}
但是,当您省略显式的dic_param查询参数时会发生什么?
?str_param=value
你期待
str_param=value
metadata={}
猜猜你得到了什么?
str_param=value
dic_param={str_param, value}
我也很想把它映射出来:
?str_param=value&foo=bar&bar=baz
到
str_param=value
dic_param={foo, bar} {bar, baz}
然而,我得到同样惊人的
str_param=value
dic_param= {str_param, value} {foo, bar} {bar, baz}
有这种疯狂的理由吗?