我遇到了一个相当不寻常的问题。
我们目前正在开发一个Ionic应用程序 - 使用Web API作为后端数据库。在应用程序中,我们调用$ http.post方法将数据发布回API,如下所示:
$http.post(
ApiEndpoint.url + '/PostUpdate/',
JSON.stringify(postData),
{
headers: {
'Content-Type': 'application/json'
}
}
).success(function(data) {
alert("WORKS!");
});
我可以通过Google Chrome开发者工具成功发布所有数据:
然而,当POST命中Web API时 - 并非所有数据都在模型中显示。以上述数据为例,您可以看到元素" DetailsOfConversation"中包含数据 - 但在模型中将其设置为null:
但是其他属性(例如OutcomeId,TimeAttend,attendGivenAddress,jobId)设置了正确的值。这个让我难过!我可以从哪里开始解决这个问题?
编辑:我已实现以下自定义属性: http://weblog.west-wind.com/posts/2013/Dec/13/Accepting-Raw-Request-Body-Content-with-ASPNET-Web-API
允许我查看POST数据的原始主体,似乎缺少字段:
所以我想如果这个问题无法解决,我只需从中提取数据(不太理想,我知道)
答案 0 :(得分:0)
请检查您的序列化程序,并确保您已收到内容类型'application\json', probably you dont have registered json serialiser or content type accepted as
'x-www-form-urlencoded'。我之前遇到过类似的问题,其来源是序列化程序。
答案 1 :(得分:0)
我有一个截止日期 - 所以我不得不进行一次解决方案:
dynamic json = Newtonsoft.Json.JsonConvert.DeserializeObject(input);
string conversation = json.DetailsOfConversation;
上面给出了我需要的数据,不太理想,但我猜是一种解决方法。