Asp.Net Core Web API 参数

[HttpPost]
public IActionResult Post(string a,string b)
{}

此种方式只能在URL后面加?a=1&b=2的时候才能收到参数,否则无论使用form-data x-www-form-urlencoded,Json,全部为null

[HttpPost]
public IActionResult Post(dynamic d)
public IActionResult Post(object d)
public IActionResult Post(model d)

上面情况:
1、使用data: { “a”: “1”, “b”: “2” }, contentType
application/x-www-form-urlencode 报错:415 Unsupported Media Type

2、使用 data: { “a”: “1”, “b”: “2” } ,contentType:”application/json”,报错
400 Bad Request

3、 使用 data: JSON.stringify({ “a”: “1”, “b”: “2” }),contentType:”
application/x-www-form-urlencode “,报错
报错:415 Unsupported Media Type

4、 使用 data: JSON.stringify({ “a”: “1”, “b”: “2” }),
contentType:”application/json” ,可以收到参数

综上:
1、Post只能接受一个对象,如果非要写public IActionResult Post(string a),那么传值data: { “”: “Jim” },a的值就是jim
2、多个参数组合成dynamic,object,后台反序列化,前台使用
JSON.stringify
3、多个参数组合成实体,后台直接调用。
4、Get请求直接可以用string a,string b接收的到。
5、Post必须使用contentType:”application/json”方式传递
6、POST方式只能传递一个实体,如model,object,dynamic
7、前台JSON.stringify,后台接受数据使用[FromBody]