gpt4 book ai didi

c# - Web Api 2 不反序列化 JSON

转载 作者:太空宇宙 更新时间:2023-11-03 15:12:57 25 4
gpt4 key购买 nike

我正在尝试在我的应用程序中调用 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
}
});

知道为什么模型绑定(bind)器没有反序列化我的 JSON 吗?

最佳答案

尝试像这样定义你的模型

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

或者在不定义 JSON 对象 {memberId: 18} 的情况下将您的数据作为简单值发布。简单的喜欢

"18"

然后它将映射到您的属性 memberId,即使属性将有另一个名称。

更多reading

关于c# - Web Api 2 不反序列化 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40332096/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com