durandal-project中动态剑道界面网格的正确api控制器



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

我也使用创建功能。它说,在网格声明我有以下代码:

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

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

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

我从来没有尝试过,但你应该能够通过一个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字段设置为一个值,否则剑道将继续发送项目到服务器认为它仍然是新的(因为它没有ID)。

最新更新