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

问题描述 投票:0回答:1

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

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

c# asp.net-core
1个回答
0
投票

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

正如How model binding works所解释的那样,以下摘录说明了为什么你会收到null。

绑定参数时,模型绑定将停止查找具有该名称的值,并继续绑定下一个参数。否则,默认模型绑定行为将参数设置为其默认值,具体取决于其类型:

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

© www.soinside.com 2019 - 2024. All rights reserved.