簡體   English   中英

Web Api 2不反序列化JSON

[英]Web Api 2 not deserializing JSON

我正在嘗試在應用程序中調用Web服務API,並且傳入了一個參數,但是由於某種原因,它沒有反序列化JSON。 相反,它只是以字符串形式傳入我的JSON。 這是API代碼:

[Route("api/v1/images/GetMemberImageUrl", Name = "ApiImagesGetMemberImageUrl")]
[HttpPost]
public IHttpActionResult GetMemberImageUrl([FromBody]object memberId)
{
    // memberId is a string and it contains "{memberId: 18}"

    // Do stuff
    // ...
}

請注意,我最初有[FromBody]int memberId 我收到了一個錯誤的請求,所以我將其更改為object以便可以看到到底傳入了什么。傳入的是一個包含"{memberId: 18}"的字符串。

這是我對API的AJAX調用代碼:

$.ajax({
    type: 'POST',
    cache: false,
    timeout: 30000,
    data: JSON.stringify({memberId: @Infrastructure.Member.GetAuthenticatedMembersId()}),
    url: '@Url.HttpRouteUrl("ApiImagesGetMemberImageUrl", null)',
    contentType: "application/json",
    success: function(retval) {
        // Do more stuff
    }
});

知道為什么模型綁定程序沒有反序列化我的JSON嗎?

嘗試像這樣定義模型

public class MyModel
{
    public string MemberId { get; set; }
}

或將數據發布為簡單值而不定義JSON對象{memberId: 18} 就像

"18"

然后,它將被映射到您的屬性memberId,即使該屬性將具有另一個名稱。

更多閱讀

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM