我将此查询发送到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))}";
}
为什么我不能绑定到字节数组?
为什么我不能绑定到字节数组?
正如How model binding works所解释的那样,以下摘录说明了为什么你会收到null。
绑定参数时,模型绑定将停止查找具有该名称的值,并继续绑定下一个参数。否则,默认模型绑定行为将参数设置为其默认值,具体取决于其类型:
T[]
:除byte[]
类型的数组外,绑定将T[]
类型的参数设置为Array.Empty<T>()
。byte[]
类型的数组设置为null
。