【问题标题】:Sending JSON object to Web API failure将 JSON 对象发送到 Web API 失败
【发布时间】:2016-09-27 19:00:29
【问题描述】:

我正在尝试通过 ajax 将 jQquery 对象发送到 Web API 控制器。

这是我的 jquery 代码:

var CurrentOrder = [];
var lineItem = { 'rowid': '34', 'quantity': '4', 'comment': 'somecomment' ,
               'rowid': '22', 'quantity': '5', 'comment': 'somecomment1'};

CurrentOrder.push(lineItem);

$.ajax({
    type: 'PUT',
    data: JSON.stringify({ SessionCart: CurrentOrder }),
    contentType: 'application/json; charset=utf-8',
    url: '/api/Cart/UpdateCart/',
    //traditional: true,
    beforeSend: function () {
        res.container.append(res.loader);
    },
    success: function () {
        res.container.find(res.loader).remove();
        $('.loader').attr('style', 'display:none');
        GetSessionCart();
    },
    error: function () {
        res.container.find(res.loader).remove();
        $('.loader').attr('style', 'display:none');
        alert('Current Order could not be updated. Please Try again.')
    }
})

这是我的模型:

 public class Cart
{
    public string rowid { get; set; }
    public string quantity { get; set; }
    public string comment { get; set; }

}

还有控制器:

    [HttpPut, HttpDelete]
    [ActionName("UpdateCart")]
    public HttpResponseMessage UpdateCart([FromUri] List<Cart> SessionCart)
    {

       //do sth
    }

问题是控制器被击中,但参数SessionCart 计数始终为 0。我尝试不将对象字符串化,使用引号包裹对象,传递单个对象而不是数组和其他一堆事物。这些都不起作用。任何帮助将不胜感激。

【问题讨论】:

    标签: c# jquery ajax asp.net-web-api


    【解决方案1】:

    [FromUri] 要么根本不存在,要么将其更改为 [FromBody] -

    [FromUri] 将查看数据的查询字符串与PUT 正文

    此外,您似乎应该将数据设置为:

    data: JSON.stringify(CurrentOrder),

    这个,加上 Matteo1010 的建议。

    【讨论】:

    • 你是救生员。谢谢!问题是 [FromUri] 和 JSON.stringify。祝你好运:D
    【解决方案2】:

    我认为json是错误的:

    var lineitem = { 'rowid': '34', 'quantity': '4', 'comment':     'somecomment'} ;
    CurrentOrder.push(lineItem);
    lineitem = { 'rowid': '22', 'quantity': '5', 'comment': 'somecomment1} ;
    CurrentOrder.push(lineItem);
    
    
    
    data: JSON.stringify(CurrentOrder), 
    

    【讨论】:

      猜你喜欢
      • 2012-12-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-07
      • 1970-01-01
      • 2014-12-19
      • 1970-01-01
      • 2018-03-21
      • 2014-11-25
      相关资源
      最近更新 更多