0

我在 Durandal 项目中工作,喜欢使用 kendo-ui 网格(Telerik 公司的)。

我也使用创建功能。很简单,在网格声明中我有以下代码:

  transport: {                        
                    create: {
                        url: myUrl,
                        type: 'POST',
                        dataType: 'json'
                    }
             },

我的网格是动态的。它说网格模式和列是建立在运行时的。所以,服务端方法需要通过泛型对象来接受数据,例如:dataTable。我不能接受特定类型,例如:产品/学生/汽车。

实现我的服务器端的正确方法是什么?控制器方法必须接受什么?

4

1 回答 1

0

我从未尝试过,但您应该能够将 JSON.net 传入JObject和传出控制器,例如:

[HttpPost]
public JObject PostAlbumJObject(JObject jobj)
{
    // dynamic input from inbound JSON
    dynamic data = jobj;

    data.someProperty;

    return jobj;
}

但是在剑道方面,我不确定是否DataSource会向服务器发送创建请求,除非有id指定,使用schema.model.id

var ds = new kendo.data.DataSource({
    schema: {
        model: {
             id: "someIdField"
        }
    }
});

在内部,Kendo 检查设置为 ID 的字段是否设置为默认值(未定义或 0),如果是,则假定该对象是新的。当您再次从服务器返回对象时,它必须将 ID 字段设置为一个值,否则 Kendo 会继续将项目发送到服务器,认为它仍然是新的(因为它没有 ID)。

于 2014-08-24T19:38:39.077 回答