【问题标题】:Json to List<object> not bindingJson 到 List<object> 没有绑定
【发布时间】:2013-12-16 11:19:12
【问题描述】:

我对以 json 格式发送的对象有问题,该对象未绑定在动作控制器中

这里是json部分:

function filterTxAjustement(arrTx) {
    return {
        dateDebut: $("#TxAjustementDateDebut").val(),
        dateFin: $("#TxAjustementDateFin").val(),
        ufCode: $("#TxAjustementUf").val(),
        tx: JSON.stringify(arrTx)
    };
}

function SaveTx() {

    var arrTx = [];

    $.each(Day, function (i, v) {
        var $this = $('#' + v + 'Tx');
        var tx = new Object();
        tx.Day = v;
        tx.Nb = parseInt($this.val());
        tx.UfCode = parseInt($('#TxAjustementUf').val());
        tx.Total = 0;
        arrTx.push(tx);
    });

    $.ajax({
        url: EasilyRelativeUrl("Lit/SetTxAjustementByDateAndUf"),            
        data: filterTxAjustement(arrTx),
        type: 'POST',
        dataType: 'json'
    }).done(function (data) {

        $('#TxAjustementGrid').data("kendoGrid").dataSource.read();
    });
}

我的数组填充得很好:

发布日期:2013 年 16 月 12 日 日期Fin:22/12/2013 uf代码:21124 tx:[{"Day":"Sunday","Nb":1,"UfCode":21124,"Total":0},{"Day":"Monday","Nb":2,"UfCode": 21124,"Total":0},{"Day":"Tuesday","Nb":3,"UfCode":21124,"Total":0},{"Day":"Wednesday","Nb": 0,"UfCode":21124,"Total":0},{"Day":"Thursday","Nb":0,"UfCode":21124,"Total":0},{"Day":"Friday ","Nb":0,"UfCode":21124,"Total":0},{"Day":"Saturday","Nb":0,"UfCode":21124,"Total":0}]

但是当它到达动作控制器时,tx 为空

        public ActionResult SetTxAjustementByDateAndUf(DateTime dateDebut, DateTime dateFin, string ufCode, List<TauxAjustement> tx)

(这里是 TauxAjustement 对象)

    public class TauxAjustement
{
    public string Day { get; set; }
    public int Nb { get; set; }
    public int Total { get; set; }
    public int UfCode { get; set; }
}

我尝试过使用 TauxAjustement[],但同样的问题。我添加了 Total = 0 和 parseInt 以获得 C# 对象的确切定义,但相同... 我错过了什么?我为此制作了一个 CustomBinderModel 吗?

感谢您的帮助。

【问题讨论】:

标签: asp.net-mvc json


【解决方案1】:

您需要将tx 参数定义为数组而不是列表:

public ActionResult SetTxAjustementByDateAndUf(DateTime dateDebut, 
                                               DateTime dateFin, 
                                               string ufCode, 
                                               TauxAjustement[] tx)
{}

【讨论】:

  • 不,我已经按照上面的描述尝试过,问题来自 JSON.stringify。
猜你喜欢
  • 2011-11-17
  • 1970-01-01
  • 1970-01-01
  • 2011-07-09
  • 2015-09-01
  • 2011-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多