javascript - 如何使用查询字符串传递对象表?
问题描述
我需要在我的 .NET Core 3.1 API 项目中分享一些发货信息。我设计了一个端点,它返回满足 SearchResultsDto 对象中包含的过滤条件的对象集合。过滤机制的工作原理很简单。在客户端,用户选择一个属性,并为其提供一些值。用户可能希望使用一个、两个甚至更多属性来过滤表。所以我的控制器方法需要将一组过滤器(对属性过滤器值)作为参数。这是我的方法和过滤器类定义:
[HttpGet]
public async Task<ActionResult<SearchResultsDto>> GetShipmentAsync([FromQuery] ICollection<Filter> filters,
[FromQuery] int page,
[FromQuery] int pageCapacity,
[FromQuery] DateTime dateTimeInfimum,
[FromQuery] DateTime dateTimeSupremum,
[FromQuery] bool withPodOnly) =>
Ok(await QueryBus
.SendAsync<GetShipmentQuery, SearchResultsDto>(new GetShipmentQuery
{
Page = page,
PageCapacity = pageCapacity,
DateTimeInfimum = dateTimeInfimum,
DateTimeSupremum = dateTimeSupremum,
WithPodOnly = withPodOnly,
Filters = filters
}));
public class Filter
{
public string PropertyName { get; set; }
public string FilterValue { get; set; }
}
如何使用查询字符串正确传递过滤器对象数组?将查询字符串用于这种行为是一种好方法吗?如果没有,我应该如何设计我的端点?如何使用 GET 方法以适当的方式序列化 JavaScript 对象,并使用 axios 发送它?
我已经尝试过这样的事情:
https://localhost:44348/api/shipment?filters=[propertyName=materialReleaseReceipt&filterValue=WZ]&page=1&pageCapacity=4&dateTimeInfimum=2012-04-23T18:25:43.511Z&dateTimeSupremum=2012-04-23T18:25:43.511Z&withPodOnly=true
但它不起作用。过滤器集合未正确解析。
解决方案
推荐阅读
- kubernetes - Mosquitto 无法在我的 Kubernetes 集群中分配请求的地址
- sql-server - 复制到新数据库时的 SQL Server 2012 性能问题
- smartcontracts - 如何使用 RIDE 函数解码编码附件?
- corda - corda 的主网还是我们自己的网络?什么时候用哪个?
- python - 添加特定的新行直到获得特定的数字行python
- r - 根据条件从一列中选择某些值并更改该列中的值
- javascript - WebSocket - 如何保持连接?
- javascript - “Typeerror 无法读取未定义的属性 '0'”是什么意思?
- php - 侧边栏的WordPress内容被重复
- apache - 重定向和更改请求方法和内容