我的WebApi中有一个POST方法,它以json作为参数。
[HttpPost]
public HttpResponseMessage GetOrderDataBySessionId([FromBody] string json)我试着用URL:localhost:56934/api/Home/GetOrderDataBySessionId用RestClient点击它
并在正文中指定以下json字符串:
{
"ListSessionId": [
"180416073256DGQR10",
"180416091511DGQR10"
]
}将主体/内容类型设置为application/json.但是当它击中我的方法时,json字符串参数总是为null。
是因为我需要在参数中使用复杂类型吗?
我们不能用字符串输入吗?
发布于 2018-04-25 07:27:59
通过发送以下内容:
{
"ListSessionId": [
"180416073256DGQR10",
"180416091511DGQR10"
]
}您正在发送一个JSON,该JSON的类型为字符串数组,因此您的Web操作应该是:
public HttpResponseMessage GetOrderDataBySessionId([FromBody] List<string> listSessionId)只需将string json更改为List<string> listSessionId即可。
发布于 2021-03-19 09:57:26
我已经解决了这个问题。
客户端代码:
$.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]。https://stackoverflow.com/questions/50016324
复制相似问题