.ASP。核心绑定到 byte[] 不起作用



我正在将此查询发送到ASP。核心控制器操作(为了便于阅读,我添加了换行符):

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))}";
}

为什么我不能绑定到字节数组?

为什么我不能绑定到字节数组?

如此处所述 模型绑定的工作原理,以下摘录显示了收到 null 的原因。

绑定

参数时,模型绑定将停止查找具有以下值 该名称,然后继续绑定下一个参数。否则, 默认模型绑定行为将参数设置为其默认值 根据其类型:

T[]:除了byte[]类型的数组外,绑定将T[]类型的参数设置为Array.Empty<T>()。类型byte[]的数组设置为null

最新更新