Kendo ui 剑道网格服务器包装器未将排序请求作为JSON发送

Kendo ui 剑道网格服务器包装器未将排序请求作为JSON发送,kendo-ui,kendo-grid,kendo-asp.net-mvc,Kendo Ui,Kendo Grid,Kendo Asp.net Mvc,我在GitHub上下载了一份Telerik样本,来自他们的公共样本 我将它从客户端javascript初始化转换为服务器端包装(下载了试用版) 这是代码(在这里手工输入,开发机器未连接到inet) @(Html.Kendo.Grid() .Name(“SamplGrid”) .列(c=> { c、 绑定(s=>s.id); c、 绑定(s=>s.Name); }) .Pageable() .Sortable() .DataSource(ds=>ds .Ajax() .页面大小(10) .Read

我在GitHub上下载了一份Telerik样本,来自他们的公共样本

我将它从客户端javascript初始化转换为服务器端包装(下载了试用版)

这是代码(在这里手工输入,开发机器未连接到inet)

@(Html.Kendo.Grid()
.Name(“SamplGrid”)
.列(c=>
{
c、 绑定(s=>s.id);
c、 绑定(s=>s.Name);
})
.Pageable()
.Sortable()
.DataSource(ds=>ds
.Ajax()
.页面大小(10)
.Read(r=>r.Action(“Read”,“Samples”).Type(HttpVerbs.Post))
)
)
问题是排序不起作用

在我的版本中发送到服务器的排序表达式如下所示:
take=10&skip=0&page=1&pagesize=10&sort%5B0%5D%5Bfield%5D=id%5Bdir%5D=asc

在原始样本中,它看起来像:

{“take”:10,“skip”:0,“page”:1,“pagesize”:10,“sort”:[{“field”:“id”,“dir”:“asc”,“compare”:null}}

换句话说,示例发送JSON,但我的代码生成其他内容


如何让网格使用服务器包装器发送相同的JSON?

好的,我已经找到了问题和解决方案

正如@Iman所说,发送到服务器的数据是经过编码的,而不仅仅是JSON, 服务器需要JSON

排序不起作用,因为就服务器而言,排序表达式无效

要使网格发送JSON,需要对其进行配置。问题是服务器包装器不支持此特定功能。实现这一点的唯一方法是使用javascript在客户端配置它


我发现Telerik支持论坛上的帖子非常有用。

我无法理解你的问题。但这不是必需的。键入(HttpVerbs.Post)@Iman,编辑问题,你能看一下吗?@HaBo我删除了
HttpVerbs.Post
,但MVC默认不允许
Get
,所以我得到了
404未找到
。我不想使用Get`因为它有长度限制。
take=10&skip=0&page=1&pagesize=10&sort%5B0%5D%5Bfield%5D=id%5Bdir%5D=asc
被编码为等于
take=10&skip=0&page=1&pagesize=10&sort[0][field]=id[dir]=asc
。如何发送排序数据并不重要,如果您的问题是排序列不起作用,这意味着您忘记了代码中的某些内容。顺便说一下,我不能很好地理解你的问题。是不是你的电网坏了?也请检查此示例:部分:(
ASP.NET MVC/sorting.cshtml
)谢谢@Iman,您为我指明了正确的方向。实际上,对于服务器而言,是否发送JSON非常重要。见下面我的答案