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);
    }

.

ASP.NET / jQuery : post JSON to web-service

不确定您传递到results的内容。偶然发现了这个博客。你也许想试一试。该博客讨论了作为JSON对象/数组传递数据(您可能想尝试不使用JSON.stringify)