我加了[FromBody]也是一样,提交的数据为五条,能显示5,但是值怎么也出不来,下面是JS脚本,如果是提交一条数据是没有问题的,多条,一直为NULL,很疑惑,现在用inputSteam解决的,但是提交数据多的话,会报流XX前读取已经关闭的XX之类的信息。
1.看报文.你是不是把json字符串转json了.(前后有双引号)
2.把数组房一个对象的里当字段比如{array:list},再传
基本上是第一个原因.检查报文吧
字符串是对的,放数组里,我试试。
@冷諾寒: 你这样当然是对的.
我是说看报文.看报文..看报文啊..
你把代码全放出来看看
API
[HttpPost] public IHttpActionResult BatchInsert([FromBody]List<Models.BuyerRegist> list) { var config = new MapperConfiguration(cfg => { cfg.CreateMap<Models.BuyerRegist, BuyerRegist>(); }); var mapper = config.CreateMapper(); var convertList = mapper.Map<List<BuyerRegist>>(list); Repository.BatchInsert(convertList); return MessageHelper.Message(true, "供应商信息添加成功。", convertList.Count); }
JS:
function batchSave() { var userList = [ { SupplierCode: "0101", SupplierName: "User A", LinkMan: "李小明1", Remark: "批量测试" }, { SupplierCode: "0102", SupplierName: "User A", LinkMan: "李小明2", Remark: "批量测试" }, { SupplierCode: "0103", SupplierName: "User A", LinkMan: "李小明3", Remark: "批量测试" }, { SupplierCode: "0104", SupplierName: "User A", LinkMan: "李小明4", Remark: "批量测试" }, { SupplierCode: "0105", SupplierName: "User A", LinkMan: "李小明5", Remark: "批量测试" } ]; $.ajax({ type: 'POST', url: 'http://localhost:13443/api/SupplierRegist/BatchInsert', contentType: 'application/json', data: JSON.stringify(userList) }).success(function (result) { debugger; var m = result; alert(m); }).error(function (data) { alert(data); }); }
@冷諾寒: 你可以把你这测试代码打包发给我看看,我在本地自己新建的项目没有你这问题,我只能看看你的项目了,你可以直接发我邮箱renyi.h@qq.com
如果你方便,可以把你的发我邮箱一份,你新建的应该没有影响。
admin@wyjava.com 我这是两个不同的项目。
谢谢大家的回复,经过我一天的调式,发现是我们框架的问题,我自己实现 Modelbinder就解决了问题了,非常感谢大家的热情回复。