ASP.NET / jQuery : post JSON to web-service
本文关键字:JSON to web-service post NET jQuery ASP | 更新日期: 2023-09-27 18:10:53
我试图发布一些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); }
});
在控制器中实现的webservice是这样的:
public HttpResponseMessage Post([FromBody]string value)
{
object o1 = Request.Content;
HttpResponseMessage r = new HttpResponseMessage(HttpStatusCode.OK);
return r;
}
如果我拿出[FromBody]
指令,然后我得到一个404。如果我把它留在代码执行,但value
参数的值是空的。
我认为[FromBody]
指令意味着数据包含在请求对象中,但如果是我找不到它。
将感谢任何建议,以便我可以在Post
方法中从客户端访问JSON。
更新:
我只是重新阅读这个:http://www.asp.net/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api这让我想知道我给JSON博客客户端的名称是否应该对应于[FromBody]
应用的参数名称,所以我将参数的名称从value
更改为Results
,但仍然在Post
方法中的值为空。
的决议在阅读了Prashanth Thurairatnam提到的博客文章后,我改变了我的方法,就像这样:
public HttpResponseMessage Post([FromBody]JToken jsonbody)
{
// Process the jsonbody
return new HttpResponseMessage(HttpStatusCode.Created);
}
.
不确定您传递到results
的内容。偶然发现了这个博客。你也许想试一试。该博客讨论了作为JSON对象/数组传递数据(您可能想尝试不使用JSON.stringify)