如何以查询字符串格式将发布的数据绑定为x-www-form-urlencoded?

时间:2019-01-09 14:24:00

标签: c# asp.net-core

我有一个ASP.NET Core控制器,该控制器响应POST请求并以application / x-www-form-urlencoded形式接受数据

[HttpPost]
[Consumes("application/x-www-form-urlencoded")]
public async Task<IActionResult> RegisterPayment([FromForm]PaymentDetails data)
{
//registerpayment
}

当我使用此正文发布x-www-form-urlencode时,通过使用邮递员:

orderid:2552
amount:100

它有效,并且data参数已正确绑定。

但是,如果我使用这种查询字符串格式发布它

orderid=2552&amount=100

它不绑定,数据中的所有字段都为空。

即使使用querystring格式,我也希望数据能够正确绑定,毕竟是用urlencode编码的。

1 个答案:

答案 0 :(得分:0)

与GET请求不同,POST请求不包含查询字符串。通常,将所有参数放在GET的查询字符串中,并将所有参数放在POST的正文中。

您选择的框架可能会忽略POST请求的查询字符串。

要进行更深入的讨论,建议您检查thisthis