与C#Http传递查询参数有关的角

问题描述 投票:1回答:1

我认为我缺少C#HttpGet模板,但这是详细信息。在Angular前端:

let params = new HttpParams()
  .append('GDWarn', values[0].toString())
  .append('GDLimit', values[1].toString())
  .append('NDWarn', values[2].toString())
  .append('NDLimit', values[3].toString())
let url = `${this.url}/CalibrationModelFile/UpdateLimits/${this.networkID}/${constID}/{params}`

[这里我假设this.http.get(url, …将做一些魔术,以识别HttpParams是一组QUERY参数。因此,C#后端可以接收http请求:

[HttpGet("CalibrationModelFile/UpdateLimits/{networkID:int}/{ConstituentID:int}/{values}")]
public async Task UpdateConstituentLimits(int networkID, int ConstituentID, [FromQuery] double[,] values)

我认为[FromQuery]可能是正确的,但还不够。模板中的{values]可能应该有一些内容,因此我们知道它是QUERY PARMS?

有什么想法吗?

谢谢,瑜伽士

c# angular http query-parameters
1个回答
0
投票

如果您要获取一组查询参数和路由参数,如下所示:

.../CalibrationModelFile/UpdateLimits/networkID/ConstituentID?values=array

您应该发送请求,如示例所示:

.../CalibrationModelFile/UpdateLimits/1/2?values=3.0&values=4.0&values=5.0

并且C#中的操作参数为:

[HttpGet("CalibrationModelFile/UpdateLimits/{networkID:int}/{ConstituentID:int}")]
public async Task UpdateConstituentLimits(int networkID, int ConstituentID, [FromQuery] double[] values)

在上述示例中,{values}已从路径中删除,因为QueryParam不是路径的一部分。另外,最好使用[FromRoute]属性装饰路由参数。

© www.soinside.com 2019 - 2024. All rights reserved.