我遇到了json格式的对象发送问题,在Action Controller
中没有绑定这里有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();
});
}
我的阵列人口众多:
dateDebut:16/12/2013 dateFin:22/12/2013 ufCode:21124 TX:[{ “日”: “星期日”, “NB”:1, “UfCode”:21124, “合计”:0},{ “日”: “星期一”, “NB”:2 “UfCode”: 21124, “总”:0},{ “天”: “星期二”, “NB”:3, “UfCode”:21124, “总”:0},{ “天”: “星期三”, “NB”: 0, “UfCode”:21124, “总”:0},{ “天”: “星期四”, “NB”:0, “UfCode”:21124, “总”:0},{ “天”:“星期五”, “NB”:0, “UfCode”:21124, “合计”:0},{ “日”: “星期六”, “NB”:0, “UfCode”:21124, “合计”:0}] < / p>
但是当它击中Action Controller时,tx为null
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?
感谢您的帮助。
答案 0 :(得分:0)
您需要将tx
参数定义为数组而不是List:
public ActionResult SetTxAjustementByDateAndUf(DateTime dateDebut,
DateTime dateFin,
string ufCode,
TauxAjustement[] tx)
{}