1

我的控制器动作:

       [HttpPost]
        public ActionResult H80Count(IEnumerable<H80SearchCriteria> model)
        {
             do some stuff and return Json;
        }

我的模型:

    public class H80SearchCriteria
    {
        public int ID { get; set; }
        public int Operator { get; set; }
        public string FieldID { get; set; }
        public string Kriterie { get; set; }

    }

我的Javascript:

    var SearchCriteria = [];
    var i = 0;
    $('#tableSearchValues > tbody').find('tr').each(function () {
        i += 1;

        var row = {
            ID : i,
            Operator : $(this).data('operator'),
            FieldID : $(this).data('fieldid'),
            Kriterie: $(this).data('kriterie')
        };

        SearchCriteria.push(row);
    });
    var url = '/MyController/H80Count';
    var data = JSON.stringify(SearchCriteria) ;

    $.ajax({
        type: 'POST',
        url: url,
        data: data,
    etc...

传递的 Json 如下所示:

[{"ID":1,"Operator":1,"FieldID":1,"Kriterie":11211},{"ID":2,"Operator":1,"FieldID":1,"Kriterie":11211}]

我不明白为什么它没有正确解析。我错过了什么?

4

2 回答 2

1

我认为您忘记了contentType: 'application/json'on ajax 功能。

这个对我有用。

于 2013-10-28T18:32:46.780 回答
0

试试这个,而不是IEnumerable使用 array 和 place[FromUri]或者[FromBody]在请求的 Uri 或 Body 中查找值。

    [HttpPost]
    public ActionResult H80Count([FromUri] H80SearchCriteria[] model)
    {
         do some stuff and return Json;
    }

并且不要忘记将传统的 ajax 设置设置为 true

$.ajax({
        type: 'POST',
        url: url,
        data: data,
        traditional: true
        });
于 2013-10-28T18:49:19.447 回答