我将数组传递给我的服务时遇到问题,它只识别数组中的第一个值:
这是我的请求对象:
[Route("/dashboard", "GET")]
public class DashboardRequest : IReturn<Dashboard>
{
public int[] EquipmentIds { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
以下是提出的请求:
http://localhost:9090/json/reply/DashboardRequest?EquipmentIds=1&EquipmentIds=2
Run Code Online (Sandbox Code Playgroud)
但是当我在服务中观察数组时,它只包含一个值,即1.
public object Get(DashboardRequest request)
{
// request.EquipmentIds.Length == 1;
// request.EquipmentIds[0] == 1;
}
Run Code Online (Sandbox Code Playgroud)
我所做的一个解决方案如下,看起来有点hacky?我认为在我的Request Object中指定它的意思是我得到一个强类型的Request Object?
var equipmentIds = Request
.QueryString["EquipmentIds"]
.Split(',')
.Select(int.Parse)
.ToList();
Run Code Online (Sandbox Code Playgroud)
这在您使用自定义路线时有效,例如:
[Route("/dashboard", "GET")]
public class DashboardRequest : IReturn<Dashboard>
{
public int[] EquipmentIds { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
并通过用户定义的路线调用它,例如:
http://localhost:9090/dashboard?EquipmentIds=1&EquipmentIds=2
Run Code Online (Sandbox Code Playgroud)
这种支持还增加了对预定义的路线在此承诺,将可从v4.0.24 +这就是现在可在MyGet.
所以你现有的请求现在也可以,例如:
http://localhost:9090/json/reply/DashboardRequest?EquipmentIds=1&EquipmentIds=2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1313 次 |
| 最近记录: |