我正在尝试将一些JSON发布到Web服务。Web服务已执行,但是没有可用数据。
jQuery看起来像这样:
var json = {"Results": results};
var jsonArray=JSON.stringify(json);
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: requestURL,
data: jsonArray ,
dataType: "json",
success: function (data) { TCG.QUE.processSaveButtonSucceeded(data); },
error: function (data) { TCG.QUE.processSaveButtonFailed(data); }
});
在控制器中实现的Web服务看起来像这样:
public HttpResponseMessage Post([FromBody]string value)
{
object o1 = Request.Content;
HttpResponseMessage r = new HttpResponseMessage(HttpStatusCode.OK);
return r;
}
如果我取出该[FromBody]
指令,则会得到404。如果我将其留在代码中,则会执行该指令,但value
参数的值为null。
我以为该[FromBody]
指令意味着数据包含在Request对象中,但是如果是的话,我将找不到它。
我们将不胜感激任何建议,以便我可以从客户端通过该Post
方法访问JSON 。
更新:
我只是重新读了一下:http : //www.asp.net/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api这让我想知道我的名字是否给出了JSON Blog客户端应与[FromBody]
应用的参数名称相对应,因此我将参数名称从更改为value
,Results
但Post
方法中的值仍为null。
解决方案在阅读了Prashanth Thurairatnam提到的博客文章后,我将方法更改为如下所示,并且该方法有效:
public HttpResponseMessage Post([FromBody]JToken jsonbody)
{
// Process the jsonbody
return new HttpResponseMessage(HttpStatusCode.Created);
}
。
不知道您要传入什么results
。跑到这个博客。您可能想要尝试一下。该博客讨论了如何将数据作为JSON对象/数组传递(您可能希望在没有JSON.stringify的情况下尝试使用)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句