我的自定义模型绑定器的 AttemptedValue 包含键和值
The AttemptedValue of my custom modelbinder contains both key and value
我正在关注 Mrchief 在这个问题中提供的答案:
How to pass an array of integers to a asp.net web api rest service
我遇到的问题是 AttemptedValue 包含数组的 key(见下面的屏幕截图)。
将此字符串转换为数组的代码期望 AttemptedValue 字符串如下所示:
"123, 435, 234"
这是怎么回事?
编辑
url:
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)
您的情况与 linked 完全不同。在 link 他们使用查询字符串参数:
/Categories?categoryids=1,2,3,4
这里的key是categoryids
,value是1,2,3,4
.
您使用的是路由参数:
multiple/{employeeIds}
multiple/employeeIds=123,435,234
所以这里的键是在路由的 {}
占位符中声明的任何内容,在这种情况下是 employeeIds
,而值是传递的内容而不是实际 url 中的占位符, employeeIds=123,435,234
.
要使您的自定义活页夹相关,您需要:
- 要么切换到查询字符串:
multiple?employeeIds=123,435,234
- 或更改 URL:
multiple/123,435,234
(虽然不确定它是否有效,但请随意尝试)
我正在关注 Mrchief 在这个问题中提供的答案:
How to pass an array of integers to a asp.net web api rest service
我遇到的问题是 AttemptedValue 包含数组的 key(见下面的屏幕截图)。
将此字符串转换为数组的代码期望 AttemptedValue 字符串如下所示:
"123, 435, 234"
这是怎么回事?
编辑
url:
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)
您的情况与 linked 完全不同。在 link 他们使用查询字符串参数:
/Categories?categoryids=1,2,3,4
这里的key是categoryids
,value是1,2,3,4
.
您使用的是路由参数:
multiple/{employeeIds}
multiple/employeeIds=123,435,234
所以这里的键是在路由的 {}
占位符中声明的任何内容,在这种情况下是 employeeIds
,而值是传递的内容而不是实际 url 中的占位符, employeeIds=123,435,234
.
要使您的自定义活页夹相关,您需要:
- 要么切换到查询字符串:
multiple?employeeIds=123,435,234
- 或更改 URL:
multiple/123,435,234
(虽然不确定它是否有效,但请随意尝试)