簡體   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