来自JSON的WebAPI模型绑定

Joh*_*ney 9 json model-binding kendo-ui asp.net-web-api durandal

我正在使用Durandal创建一个应用程序,WebAPI作为服务器.我有一个KendoUI网格,可以正确显示来自服务器的数据并正常运行,直到调用POST或PUT方法.这是我的GET方法: 在此输入图像描述

并且您可以看到该数据绑定到UI(使用Durandal中的数据绑定扩展性来更改为kendo绑定): 在此输入图像描述

然后我编辑Grid中的数据,它将请求中的更改传递给服务器,如此Fiddler结果中所示: 在此输入图像描述

在服务器端,我无法获取从客户端传递的数据以绑定到我作为POST或PUT上的方法的参数放置的任何内容. 在此输入图像描述

我意识到这是几种不同的故障排除技术(例如Durandal,KnockoutJs,Kendo DataBinding和WebAPI),但我认为基础工作正在运行,数据被检索并绑定到UI,并在更改时发回,但WebAPI端点无法绑定到数据.

如何通过WebAPI中的ModelBinding结构获取传递的"models"数组?

更新 - 这是一个有用的JSFiddle,它给了我正确的Content-Type来添加:http://jsfiddle.net/Xhrrj/1/

new kendo.data.DataSource({ transport: { read: { type: "POST", url: "../cccs/service.svc/SupplierSearch", contentType: "application/json; charset=utf-8", dataType: 'json'...

这是从Telerik的论坛来这里

Joa*_*rks 6

它看起来就好像是混合了form-urlencodedjson格式-如果你注视已解码的字符串被发送models=,然后urlencoded的JSON对象跟踪.