[英]WebApi POST method with string parameter is always null
我的 WebApi 中有一个 POST 方法,它将 json 字符串作为参数。
[HttpPost]
public HttpResponseMessage GetOrderDataBySessionId([FromBody] string json)
我尝试使用带有 URL 的 RestClient 命中它: localhost:56934/api/Home/GetOrderDataBySessionId
并在正文中指定以下 json 字符串:
{
"ListSessionId": [
"180416073256DGQR10",
"180416091511DGQR10"
]
}
将正文/内容类型设置为application/json 。 但是当它命中我的方法时, json
字符串参数始终为空。
是因为我需要在参数中使用复杂类型吗?
我们永远不能输入字符串吗?
通过发送此内容:
{
"ListSessionId": [
"180416073256DGQR10",
"180416091511DGQR10"
]
}
您发送的 JSON 用属性ListSessionId
表示,类型为字符串数组,因此您的 Web API 操作应该是:
public HttpResponseMessage GetOrderDataBySessionId([FromBody] List<string> listSessionId)
只需将string json
更改为List<string> listSessionId
。
我已经解决了这个问题。
客户端代码:
$.ajax({
url: "/api",
type: "post",
data: "p1=1&p2=2"
});
服务器中的代码:
[HttpPost]
public string Post([FromForm] string p1, [FromForm] string p2)
{
return p1+p2;
}
有三个关键点:
[FromForm]
而不是[FromBody]
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.