我正在按照Mrchief在这个问题中提供的答案:
How to pass an array of integers to a asp.net web api rest service
我遇到的问题是AttemptedValue包含数组的键(见下面的截图)。
将此字符串转换为数组的代码要求AttemptedValue字符串如下所示:
"123, 435, 234"
那么这里发生了什么?
网址:
https://localhost:44301/api/sickleaves/sick/multiple/employeeIds=123,435,234
端点签名:
[Route("api/sickleaves/sick/multiple/{employeeIds}")]
public async Task<IHttpActionResult> PostSick([ModelBinder(typeof(CommaDelimitedArrayModelBinder))] int[] employeeIds)
答案 0 :(得分:2)
你与你所链接的情况完全不同。在链接中,他们使用查询字符串参数:
/Categories?categoryids=1,2,3,4
此处的密钥为categoryids
,值为1,2,3,4
。
您使用的是路线参数:
multiple/{employeeIds}
multiple/employeeIds=123,435,234
所以这里的密钥是路由中{}
占位符中声明的内容,在这种情况下为employeeIds
,而值是传递的内容而不是实际网址中的占位符employeeIds=123,435,234
要使自定义活页夹相关,您需要:
multiple?employeeIds=123,435,234
multiple/123,435,234
(不确定它是否可以使用,但请随意尝试)