如何将对象列表传递给jquery ajax get

时间:2014-02-10 14:06:12

标签: jquery ajax asp.net-mvc web

我正在使用mvc5 web api 我正在尝试将多个参数传递给web api web方法。 我需要使用此参数的过滤结果 我的代码: java脚本:

var options = {
 url: '/api/normdata/getdata',
 type: 'GET',
 dataType: 'json',
 data: [{ 'name': 'n1' }, { 'name': 'n2' }, { 'name': 'n3' }, { 'name': 'n4' }]
};
$.ajax(options).then(querySucceeded).fail(queryFailed);

function querySucceeded(data) {
   var objectArray = [];
       ...
  }

function queryFailed(jqXHR, textStatus) {
   var msg = 'Error retreiving data. ' + jqXHR + " " + textStatus;
   errorMessage(msg);
}
web api控制器中的

代码:

  [Route("api/normdata/getdata")]
    public IEnumerable<string> getdata([FromBody] List<object> somedata)
    {
        List<string> stringList = new List<string>();
        var o = somedata;
        return stringList;
    }

问题是somedata变量始终为null 请指教。 莱谢克

2 个答案:

答案 0 :(得分:1)

您正在发送GET请求,但在控制器中指定[FromBody]。尝试将您的请求更改为POST

答案 1 :(得分:0)

试试这个,

var data = [{ 'name': 'n1' }, { 'name': 'n2' }, { 'name': 'n3' }, { 'name': 'n4' }]
var options = {
    url: '/api/normdata/getdata',
    type: 'POST',
    dataType: 'json',
    data: JSON.stringify(data)

};
$.ajax(options).then(querySucceeded).fail(queryFailed);

function querySucceeded(data) {
    var objectArray = [];
   ...
}
function queryFailed(jqXHR, textStatus) {
    var msg = 'Error retreiving data. ' + jqXHR + " " + textStatus;
    errorMessage(msg);
}

Documentation link