Я создаю приложение, используя Durandal, с WebAPI в качестве сервера. У меня есть сетка KendoUI, которая правильно отображает данные с сервера и функционирует должным образом, пока не будут вызваны методы POST или PUT. Вот мой метод GET: WebAPI Model Binding от JSON
, и вы можете видеть, что эти данные связываются с UI (используется data-bind extensibility в Дюрандала, чтобы изменить кендо привязок):
Затем я редактировать данные в сетке и она проходит изменения внутри запроса к серверу, как вы можете видеть в этом результате Скрипач:
на стороне сервера я не могу получить данные, которые передаются от клиента, чтобы связать к чему я отношу в качестве параметра для метода на POST или PUT.
Я понимаю, что это несколько различных технологий для устранения неполадок (например, Durandal, KnockoutJs, Кендо DataBinding и WebAPI), но я думаю, что основные принципы работают, данные извлекаются и привязаны к пользовательскому интерфейсу и она размещена назад при изменении, но конечная точка WebAPI не может привязываться к данным.
Как я могу получить переданный массив моделей для привязки через структуру ModelBinding в WebAPI?
update- Вот полезная 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 here
Основываясь на примере запроса на скрипач, вы отправляете обратно данные, но не в нужном формате, поэтому Web.API не может его использовать. Поэтому проблема заключается в том, как вы сериализуете данные. Поэтому, пожалуйста, напишите код вашего метода изменений сохранения или создайте запрос 'put'. – nemesv
Похоже, что он смешивал форму-urlencoded с json-форматом - он отправляет 'models =', а затем объекты urlencoded JSON следуют. –
@nemesv, я использую функции javascript KendoUI, вот фрагмент, который, на мой взгляд, может быть полезным: parameterMap: function (options, operation) { if (operation! == "read" && options.models) { return { модели: kendo.stringify (options.models)}; } } - ссылка http://docs.kendoui.com/getting-started/web/grid/editing - также чтение этого, может быть, способ изменить json-модель, но не уверен - http: // docs .kendoui.com/get-started/framework/datasource/overview –