我在ASP.net核心MVC 6应用程序中尝试一些分页和排序。但是当我传递数组时,查询字符串MVC动作无法将其解析为列表。
查询字符串如下所示:
取= 10安培;跳过= 0&安培;页= 1&安培;的pageSize = 10安培;排序%5B0%5D%5Bfield%5D =价格&安培;排序%5B0%5D%5Bdir%5D = ASC
它的模型如下:
请你建议一个解决方法。它应该正确解析它,但不能解决问题。
答案 0 :(得分:1)
您当前解码的查询字符串类似于
take=10&skip=0&page=1&pageSize=10&sort[0][field]=price&sort[0][dir]=asc
因此,请使用以下格式从客户端应用程序传递查询字符串参数
sort[0].field=price&sort[0].dir=asc
答案 1 :(得分:0)
有人可能有更好的答案,但如果是我,我会简化我的查询字符串并使模型变平。所以查询字符串可能是:
take=10&skip=0&page=1&pageSize=10&sortfield1=price&sortdir1=asc&sortfield2=otherfield&sortdir2=desc
然后在模型中将public List<Sort> Sort
替换为展平属性:
public string SortField1 {get; set;}
public string SortDir1 {get; set;}
public string SortField2 {get; set;}
public string SortDir2 {get; set;}
您可以根据需要添加任意数量的这些展平属性。它不优雅,但它完成了工作。然后,如果您需要构建排序列表,则可以轻松地从这些属性构建它。