[英]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.