繁体   English   中英

asp.net webapi 2 post参数始终为空

[英]asp.net webapi 2 post parameter is always null

在过去的一个小时里我一直在试图弄清楚这是我们的,但我看不出它有什么问题

该帖子来自我正在编写的 xamarin 应用程序,使用 restsharp 便携式客户端

POST http://192.168.30.103:8080/api/Order HTTP/1.1
Authorization: Basic xxxx
Content-Length: 51
Content-Type: application/json; charset=utf-8
Host: 192.168.30.103:8080
Connection: Keep-Alive
Pragma: no-cache

{"CheckinCount":1,"EventId":16630,"OrderNo":470292}

它正确命中服务器 Post API,但参数始终为空

 public IHttpActionResult Post([FromBody]string source) {
        dynamic data = JsonConvert.DeserializeObject(source);
        int checkInCount = data.CheckinCount;
        int eventId = data.EventId;
        int orderNo = data.OrderNo;
        return Ok();
    }

我想不通为什么...

你总是发送相同的参数吗? 如果是这样,您可以创建一个静态对象而不是使用动态对象吗? 类似于您传入的EventRequest类的东西?

public class EventRequest
{
    public int CheckinCount { get; set; }
    public int EventId { get; set; }
    public int OrderNo { get; set; }
}

然后您的Post操作变为:

public IHttpActionResult Post(EventRequest request) {
    // do something with request
    return Ok();
}

来自此链接的相关条目

简而言之,当发送要在服务器端使用 [frombody] 属性获取的简单值时,您必须在值前加上 = eg =testValue

但在 API 上使用 JSON 对象和对象绑定可能更好,即使是简单的值

对我来说,这是由复选框发送的值。 复选框发送true但对于 JSON,值必须在引号之间,即"true"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM