我认为我缺少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?
有什么想法吗?
谢谢,瑜伽士
如果您要获取一组查询参数和路由参数,如下所示:
.../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]
属性装饰路由参数。