【问题标题】:webapi 2 key delta patch updatewebapi 2 密钥增量补丁更新
【发布时间】:2014-06-24 20:33:04
【问题描述】:

这里使用 le 框架

http://blog.longle.net/2014/03/04/harness-the-power-of-asp-net-mvc-web-api-odata-kendo-ui-requirejs-to-build-an-easy-maintainable-spa-for-the-net-developer-published/

这里

Web API + OData - PATCH request 400 error

如何在 kendo 数据源 "batch: true" 的 WebAPI 2 odata 补丁更新中发送密钥增量

AcceptVerbs("PATCH", "MERGE")]
public async Task<IHttpActionResult> Patch([FromODataUri] int key, Delta<Company> patch)

钥匙总是空的!!!

kendo 是否支持 WebAPI odata?

【问题讨论】:

    标签: asp.net-web-api kendo-datasource asp.net-web-api-odata


    【解决方案1】:

    由于这是一项非常具体的任务,我只有一个调整适用于上述链接中显示的 Le 框架提供的存储库模式。

    define(['kendo', 'testModel'],
    function (kendo, testModel) {
        var svcUrl = '/odata/modelURL';
        var ds_test = new kendo.data.DataSource({
            type: 'odata',
            transport: {
                read: {
                    //async: false,
                    url: svcUrl,
                    dataType: 'json'
                },
                update: {
                    url: function (data) {
                        return svcUrl + '(' + data.models[0].ID + ')';
                    },
                    dataType: 'json',
                    type: 'PATCH'
                },
                create: {
                    url: function (data) {
                        return svcUrl + '(' + data.models[0].ID + ')';
                    },
                    dataType: 'json',
                    type: 'PATCH'
                },
                destroy: {
                    url: function (data) {
                        return svcUrl + '(' + data.models[0].ID + ')';
                    },
                    dataType: 'json',
                    type: 'PATCH'
                },
                parameterMap: function(data, operation) {
                    if (operation != 'read') {
                        var model = kendo.stringify(data.models[0]);
                        return model;
                    };
                    return data.models;
                }
            },
            batch: true,
            serverPaging: true,
            serverSorting: true,
            serverFiltering: true,
            pageSize: 10,
            schema: {
                data: function (data) { return data['value']; }, //{ return data.value; },
                total: function (data) { return data['odata.count']; },
                model: testModel
                //parse: function(response) {
                //    var f = ds_appl_home.options.schema.model.fields;
                //    $.each(response, function (key, value) {
                //        if (!(key.toString() in f)) {
                //            delete response[key];
                //        }
                //    });
                //    return response;
                //}
            },
            error: function (e) {
                ...
            }
        });
        return ds_test;
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-30
      • 2014-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多