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