Skip to main content
 首页 » 编程设计

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

2024年04月12日37qq号

在过去的一个小时里,我一直在努力解决这个问题,但我看不出有什么问题

该帖子来 self 正在使用 restsharp 可移植客户端编写的 xamarin 应用

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,但参数始终为 null

 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; } 
} 

您的发布 操作将变为:

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