Kendo ui 剑道网格-如何将parameterMap输出附加到创建Url
我有一个网格,我想从中创建一个新项目。看起来是这样的:Kendo ui 剑道网格-如何将parameterMap输出附加到创建Url,kendo-ui,kendo-grid,Kendo Ui,Kendo Grid,我有一个网格,我想从中创建一个新项目。看起来是这样的: self.PermissionTypeGrid = kendo.observable({ isVisible: true, permissionTypes: new kendo.data.DataSource({ schema: { model: { id: "PermissionType" }, transport: {
self.PermissionTypeGrid = kendo.observable({
isVisible: true,
permissionTypes: new kendo.data.DataSource({
schema: {
model: { id: "PermissionType" },
transport: {
read: {
url: "/api/ServiceApi?method=Ref/SystemPermissionTypes",
type: "GET"
},
create: {
url: "/api/ServiceApi?method=Ref/SystemPermissionType",
type: "POST"
},
parameterMap: function(data, type) {
if (type == "create") {
return { models: kendo.stringify(data) };
}
}
}
})
});
kendo.bind($("#permissionTypeGrid"), self.PermissionTypeGrid);
{"PermissionType":"test","Description":"test"}
parameterMap部分返回如下所示的字符串:
self.PermissionTypeGrid = kendo.observable({
isVisible: true,
permissionTypes: new kendo.data.DataSource({
schema: {
model: { id: "PermissionType" },
transport: {
read: {
url: "/api/ServiceApi?method=Ref/SystemPermissionTypes",
type: "GET"
},
create: {
url: "/api/ServiceApi?method=Ref/SystemPermissionType",
type: "POST"
},
parameterMap: function(data, type) {
if (type == "create") {
return { models: kendo.stringify(data) };
}
}
}
})
});
kendo.bind($("#permissionTypeGrid"), self.PermissionTypeGrid);
{"PermissionType":"test","Description":"test"}
我需要创建一个如下所示的url:“/api/ServiceApi?method=Ref/SystemPermissionType&data={“PermissionType”:“test”,“Description”:“test”}”
换句话说,我有正确的字符串化数据。如何将其附加到指定的url?将您的类型设置为get。然而。这是个坏习惯。
在POST中,附加在表单数据头中的数据。您可以在这个失败的ajax调用中通过网络嗅探器看到这一点
$.ajax({
url:'http://test.com',
data:{'test':'test'},
type:'POST'
});
如果查看网络流量,您会发现数据不是url的一部分
现在如果你试着用这个来代替
$.ajax({
url:'http://test.com',
data:{'test':'test'},
type:'GET'
});
您将看到数据被附加到URL的查询字符串中
http://test.com/?test=test
请注意,URL的长度是有限制的,如果试图附加到大量数据,则仅通过GET方法提交数据可能会失败。您还可以让服务器以不同的方式处理GET和POST
您可以搜索Stack Overflow,以获得关于每个应用程序的更多详细说明。像这样:
self.PermissionTypeGrid = kendo.observable({
isVisible: true,
permissionTypes: new kendo.data.DataSource({
schema: {
model: { id: "PermissionType" },
transport: {
read: {
url: "/api/ServiceApi?method=Ref/SystemPermissionTypes",
type: "GET"
},
create: {
url: "/api/ServiceApi?method=Ref/SystemPermissionType",
type: "POST"
},
parameterMap: function(data, type) {
if (type == "create") {
return { models: kendo.stringify(data) };
}
}
}
})
});
kendo.bind($("#permissionTypeGrid"), self.PermissionTypeGrid);
{"PermissionType":"test","Description":"test"}
我建议您将控制器改为Exception a post message,并将该数据嵌入表单数据中(就像您现在所做的那样) 下面是一个创建控制器方法的剑道积垢操作示例