我将此查询发送到ASP.Core控制器操作(我为可读性添加了换行符):
GET http://localhost:5000/Files/AddFileConfirmed?generatedId=90
&generatedId=73
&generatedId=25
&generatedId=199
&generatedId=69
&generatedId=245
&generatedId=238
&generatedId=83
&generatedId=164
&generatedId=208
&generatedId=156
&generatedId=83
如果操作接受int[]
,则generatedId
正确绑定,但如果byte[]
失败,则绑定正确。数组应该是字节数组而不是整数数组。
[HttpGet]
public string AddFileConfirmed(int[] generatedId)
{
return $"ID = {(generatedId == null? "Null" : String.Join(", ", generatedId))}";
}
为什么我不能绑定到字节数组?
答案 0 :(得分:0)
为什么我不能绑定到字节数组?
如此处How model binding works所述,以下摘录说明了您收到null的原因。
绑定参数时,模型绑定将停止查找值 该名称,它继续绑定下一个参数。否则, 默认模型绑定行为将参数设置为其默认值 取决于他们的类型:
m, n = 2, 2 # size of table fields=[[Field(x, y) for y in range(n)] for x in range(m)]
:除T[]
类型的数组外,绑定会将byte[]
类型的参数设置为T[]
。类型Array.Empty<T>()
的数组设置为byte[]
。