2015年1月17日星期六

以json格式发送对象集合作为参数的方法

一个页面,要同时修改多条数据,我们不可能向后端post多次来实现,可以一次post一个列表的形式将所有的数值都传给后端,然后后端统一处理。
先说前端,使用ajax技术post一个json对象是一个不错的方式,而我们的前端使用了knockout,viewModel正好也是json格式,而且knockout中还有一个ko.toJSON(viewModel)方法,非常简单,唯一需要注意的是在请求头中添加Content-Type: application/json,后端即可以自动反序列化为对象列表
var data = ko.toJSON(viewModel);
$.ajax('url',{
    'data': data,
    'type': 'POST',
    'contentType': 'application/json' 
});

再说后端,只要定义的接口参数中放入结构相同的列表就可以了
[HttpPost]
public ActionResult AfterCreditRepayNotifyDetailEdit(IList<AfterCreditRepayNotifyDetail> details)

以上过程在postman中测试是这样的: 
使用postman通过post方式传送json参数

没有评论:

发表评论