Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 无法将数组类型查询字符串解析为对象列表_Arrays_Asp.net Core Mvc_Custom Model Binder - Fatal编程技术网

Arrays 无法将数组类型查询字符串解析为对象列表

Arrays 无法将数组类型查询字符串解析为对象列表,arrays,asp.net-core-mvc,custom-model-binder,Arrays,Asp.net Core Mvc,Custom Model Binder,我正在ASP.net核心MVC 6应用程序中尝试一些分页和排序工作。但当我传递类似数组的查询字符串时,MVC操作无法将其解析为列表 查询字符串如下所示: take=10&skip=0&page=1&pageSize=10&sort%5B0%5D%5Bfield%5D=price&sort%5B0%5D%5Bdir%5D=asc 它的模型如下所示: 这是我在服务器上得到的查询字符串: 排序数组或列表的计数始终为0。 你能推荐一个工作环境吗。它应该正确地解析它,但不能得到错误的地方。有人可能会

我正在ASP.net核心MVC 6应用程序中尝试一些分页和排序工作。但当我传递类似数组的查询字符串时,MVC操作无法将其解析为列表

查询字符串如下所示:

take=10&skip=0&page=1&pageSize=10&sort%5B0%5D%5Bfield%5D=price&sort%5B0%5D%5Bdir%5D=asc

它的模型如下所示:

这是我在服务器上得到的查询字符串:

排序数组或列表的计数始终为0。


你能推荐一个工作环境吗。它应该正确地解析它,但不能得到错误的地方。

有人可能会有更好的答案,但如果是我,我会稍微简化查询字符串并将模型展平。因此,查询字符串可能是:

take=10&skip=0&page=1&pageSize=10&sortfield1=price&sortdir1=asc&sortfield2=otherfield&sortdir2=desc

然后在模型中,用展平属性替换
公共列表排序

 public string SortField1 {get; set;}
 public string SortDir1   {get; set;}
 public string SortField2 {get; set;}
 public string SortDir2   {get; set;}

可以根据需要添加任意数量的这些展开特性。这并不优雅,但它完成了任务。然后,如果您需要构建排序列表,您可以轻松地从这些属性构建它。

您当前解码的查询字符串如下所示

take=10&skip=0&page=1&pageSize=10&sort[0][field]=price&sort[0][dir]=asc
因此,请使用以下格式从客户端应用程序传递查询字符串参数

sort[0].field=price&sort[0].dir=asc

这很好,有各种各样的解决方法,但我正在寻找在我的代码中出现这个问题的原因。我可能遗漏了什么。@SundarSingh和upvote怎么样?。我确实回答了你的问题“你能提出一个解决办法吗?”