【发布时间】:2019-11-01 14:02:40
【问题描述】:
我有以下端点
[HttpPost]
[DisableRequestSizeLimit]
[RequestFormLimits(KeyLengthLimit = int.MaxValue)]
public IActionResult PostData([FromForm]Data data)
Data 类如下所示
public class Data
{
public string A { get; set; }
public string B { get; set; }
}
我是这样调用这个端点的
var url = ...;
var client = new HttpClient();
var data = new
{
a = "Foo",
b = "Bar"
};
var result = await client.PostAsJsonAsync(url, data);
但 PostData 方法中的 data 参数始终为空。任何想法我做错了什么?
【问题讨论】:
-
这不是
out参数,那么comes back是什么意思?result也不会为空,它将始终包含响应 -
FromForm?但发布为 JSON。没有表格去 -
FromForm那 - 表单不使用 JSON - JSON 是至少十年后发明的。使用带有PostAsync的FormUrlEncodedContent 实例。它所需要的输入就是任何实现IEnumerable<System.Collections.Generic.KeyValuePair<string,string>>的东西,比如Dictionary<string,string> -
另一方面,如果
PostData方法不用于表单,您可以删除[FromForm]
标签: c# asp.net-core asp.net-web-api httpclient restsharp