数组变量的 C# HttpGet 语法 - 试过 {values:double[]} 抱怨括号

C# HttpGet syntax for array variable - tried {values:double[]} complains about brackets

[HttpGet("CalibrationModelFile/{networkID:int}/{ConstituentID:int}/{values:double[]}/UpdateLimits")]

显然我必须发送一个双打数组。如果我传入单独的值,我的函数工作正常:

{value1: double}/{value2: double}/ etc

但这很蹩脚,我可以发送很多值。 当我尝试拨打电话时,服务器出现以下错误(相关部分):

抱歉图片太小了。

我找不到任何有帮助的文档。有什么想法吗?

提前致谢, 查克 ("Yogi")

Double[] 不是可接受的约束类型之一。需要注意的重要一点是,这些只是约束,而不是真正的类型说明符。我们可以只说我们想要 values,并在参数中指定它是 double[]。有关内置约束列表,请参阅 the documentation

您可以使用 FromRoute 属性轻松完成此操作。在参数中指定类型而不是路由。

[HttpGet]
[Route("CalibrationModelFile/{networkID:int}/{ConstituentID:int}/{values}/UpdateLimits")]
public IActionResult GetThing([FromRoute(Name = "values")] double[] values)
{
      return new OkObjectResult(values);
}

然后点赞

http://localhost:5000/api/CalibrationModelFile/12/13/5,2,3,4/UpdateLimits

Returns

[
  5234
]