这是我的邮递员屏幕截图,我试图向网络API呼叫发出请求。
我也尝试使用[]进行调用,每个参数都没有数字,这也不起作用。在这两种情况下,字符串的文件名数组最终都为空。当我用样本替换实际的api调用时,忽略屏幕底部的错误。当我在断点处找到正确的api调用时,我看到了null值。我在这里错过了什么吗?
答案 0 :(得分:0)
鉴于你的行动:
public async Task<IHttpActionResult> Test(string[] filenames) {
// ...
}
您需要在[FromUri]
参数中添加string[] filenames
属性。原因记录为here:
默认情况下,Web API使用以下规则绑定参数:
如果参数是“简单”类型,Web API会尝试从URI中获取值。简单类型包括.NET基元类型(int,bool,double等),以及TimeSpan,DateTime,Guid,decimal和string,以及具有可以从字符串转换的类型转换器的任何类型。 (稍后将详细介绍类型转换器。)
对于复杂类型,Web API尝试使用媒体类型格式化程序从邮件正文中读取值。
数组被认为是一种复杂类型。 [FromUri]
属性将覆盖默认行为,并指示Web API尝试从URI绑定此参数。