【发布时间】:2012-01-31 15:27:01
【问题描述】:
这是我第一次尝试 JSON MVC 模型绑定,但事情并没有按计划进行.... 叹了口气!在每次尝试中断控制器操作时,强类型模型/类要么为空,要么为空。
我做什么:
客户端我正在生成一个数组来存储付款
var PAYMENTS = new Array();
付款值由用户输入并添加到付款数组中。有些字段只有在发布数据后才会在服务器端填充,所以我分配临时值。(参考,用户 ID)
PAYMENTS.push({ reference: "0",
paymentDate: date,
paymentMethodID: paymentMethod,
paymentAmount: amount,
bankNameID: bankID,
bankBranchCode: branch,
drawerName: drawer,
chequeNo: chequeNo,
userID: "00000000-0000-0000-0000-000000000000",
statementNo: statementNo,
additionalReference: additionalRef
});
添加 2 笔付款后,这是 PAYMENTS 的萤火虫结果
0 Object { reference="0", paymentDate="31-01-2012", paymentMethodID="7", more...}
1 Object { reference="0", paymentDate="31-01-2012", paymentMethodID="0", more...}
用户选择处理调用 processPayment() 的付款
实践是应该传递的第二个参数,但只是试图首先让付款工作。
function processPayment() {
var paymentsJSON = $.toJSON(PAYMENTS);
// var practicesJSON = $.toJSON(selectedPractices);
$.ajax({
url: BASE_APP_URL + "Payment/processPayment",
type: 'POST',
data: "{ param : '" + paymentsJSON + "'}" ,
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (data) {
alert(data);
}
});
}
viewModel 类。我已经简化了 viewModel 类型,试图将一些东西放入控制器中。
public class paymentsViewModelJSONPayment
{
public string referece { get; set; }
public string paymentDate { get; set; }
public string paymentMethodID { get; set; }
public decimal paymentAmount { get; set; }
public string bankNameID { get; set; }
public string bankBranchCode { get; set; }
public string drawerName { get; set; }
public string chequeNo { get; set; }
public string userID { get; set; }
public string statementNo { get; set; }
public string additionalReference { get; set; }
}
最终控制器动作
[HttpPost]
public ActionResult processPayment(List<paymentsViewModelJSONPayment> param)
{
return Json(param);
调试时:
从 Firebug 发布值:
JSON
param "[{"reference":"0","paymentDate":"31-01-2012","paymentMethodID":"7","paymentAmount":500,"bankNameID":"8","bankBranchCode":"","drawerName":"","chequeNo":"","userID":"00000000-0000-0000-0000-000000000000","statementNo":"","additionalReference":""},{"reference":"0","paymentDate":"31-01-2012","paymentMethodID":"0","paymentAmount":500,"bankNameID":"10","bankBranchCode":"0026","drawerName":"drawer","chequeNo":"00231021","userID":"00000000-0000-0000-0000-000000000000","statementNo":"","additionalReference":""}]"
控制器中的断点。动作被调用但没有绑定。
还不允许发布图片,但是当破坏控制器列表为空时。
来自关注列表:
- 参数计数 = 0 System.Collections.Generic.List
- 原始视图容量 0 int Count 0 int
- 静态成员
- 非公共成员
我几乎没有想法,尝试了各种配置,但我尝试过的所有东西都数不清了。
非常感谢任何帮助。
谢谢大家。
【问题讨论】:
标签: json asp.net-mvc-3