我的 ASP.NET Core 控制器中有以下方法
public async Task<JsonResult> MyJsonResultMethod(int page,int take, int skip, IEnumerable<Sort> sort){
...
public class Sort
{
public string field { get; set; }
public string dir { get; set; }
}
我在前端 Kendo UI Web 网格上的 javascript 做了一个 get controller 方法
$("#grid").kendoGrid({
dataSource: {
type: "json",
transport: {
read: "/MyController/MyJsonResultMethod"
},
pageSize: 5,
serverPaging: true,
serverSorting: true
},
height: 550,
sortable: true,
pageable: {
refresh: true,
pageSizes: true,
buttonCount: 5
},
如果我在提琴手中监视它,我可以捕获 HTTPGet 并查看所有值都已传递
GET http://localhost:62594/MyController/MyJsonResultMethod?take=5&skip=0&page=1&pageSize=5&sort%5B0%5D%5Bfield%5D=DocumentNumber&sort%5B0%5D%5Bdir%5D=asc
当我调试我的控制器方法时,我可以看到传递给该方法的所有属性都具有正确的值,除了IEnumerable<Sort> sort
作为 null 接收的值。我尝试将其更改为Sort[] sort
但结果仍然相同
据我了解,这是 asp.net 核心所独有的,它们以 kendo ui 发送数组的方式。我用 Telerik 支持记录了电话,说 Kendo UI Web 网格不支持 asp.net 核心。我看不出原因,因为 Fiddler 清楚地发送了数据。我只需要以某种方式获取参数来支持它。