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