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