【发布时间】:2018-05-02 08:52:23
【问题描述】:
我有以下设置
HTML
$.ajax({
url: 'Transaction/updateTransaction',
data: saveDataObject,
}).done(function (e) {
// done
});
在“网络”标签中显示它正在发送正确的数据
查询字符串参数
key:2445
transactionDescription:Description Block
transactionToType[0][transactionToTypeKey]:1
transactionToType[0][transactionKey]:2445
transactionToType[0][transactionValue]:51.25
transactionToType[0][transactionTypeKey]:10
transactionToType[1][transactionToTypeKey]:2
transactionToType[1][transactionKey]:2445
transactionToType[1][transactionValue]:10.5
transactionToType[1][transactionTypeKey]:1
控制器
public class TransactionSave
{
public int key { get; set; }
public string transactionDescription { get; set; }
public List<TransactionToTypeSave> transactionToType { get; set; }
}
public class TransactionToTypeSave
{
public int transactionKey { get; set; }
public int transactionToTypeKey { get; set; }
public int transactionTypeKey { get; set; }
public decimal transactionValue { get; set; }
}
public int updateTransaction(TransactionSave transactionSave)
{
}
在 updateTransaction 中执行断点时,我可以看到 transactionSave 具有所有数据(键和描述),并且 transactionToType 列表具有预期的两个项目,但是,这两个列表项目的所有值都是 0。
例如
key:2445
transactionDescription: Description Block
transactionToType [
transactionToTypeKey:0
transactionKey:0
transactionValue:0
transactionTypeKey:0
], [
transactionToTypeKey:0
transactionKey:0
transactionValue:0
transactionTypeKey:0
]
我在通过 ajax 传递对象内部的列表时做错了什么?
谢谢
【问题讨论】:
-
您的集合数据需要采用
transactionToType[0].transactionToTypeKey: 1格式(属性名称周围没有括号)。但是您不应该将集合发送到 GET 方法。除了丑陋的查询字符串之外,它可能会超出查询字符串限制并抛出异常
标签: c# ajax list model-view-controller controller