ASP.Core绑定到byte []不起作用

时间:2017-12-31 17:38:30

标签: c# asp.net-core

我将此查询发送到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))}";
}

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

1 个答案:

答案 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[]