C# 使用postman将字符串数组发送到web api

C# 使用postman将字符串数组发送到web api,c#,asp.net-web-api,postman,C#,Asp.net Web Api,Postman,这是我的postman屏幕截图,我试图对web api调用发出get请求 我还尝试使用[]进行调用,每个参数都没有数字,但这也不起作用。在这两种情况下,字符串的filenames数组最终都为null。忽略屏幕底部的错误,因为我用一个示例替换了实际的api调用。当我点击正确api调用的断点时,我看到了空值。我在这里遗漏了什么吗?考虑到你的行动: public async Task<IHttpActionResult> Test(string[] filenames) { // .

这是我的postman屏幕截图,我试图对web api调用发出get请求

我还尝试使用[]进行调用,每个参数都没有数字,但这也不起作用。在这两种情况下,字符串的filenames数组最终都为null。忽略屏幕底部的错误,因为我用一个示例替换了实际的api调用。当我点击正确api调用的断点时,我看到了空值。我在这里遗漏了什么吗?

考虑到你的行动:

public async Task<IHttpActionResult> Test(string[] filenames) {
  // ...
}
公共异步任务测试(字符串[]文件名){
// ...
}
您需要向
字符串[]文件名
参数添加
[FromUri]
属性。原因记录如下:

默认情况下,Web API使用以下规则绑定参数:

  • 如果参数是“简单”类型,Web API将尝试从URI获取值。简单类型包括.NET基本类型(int、bool、double等),加上TimeSpan、DateTime、Guid、decimal和string,再加上任何带有可从字符串转换的类型转换器的类型。(稍后将详细介绍类型转换器。)

  • 对于复杂类型,Web API尝试使用媒体类型格式化程序从消息体读取值


数组被认为是一种复杂类型。
[FromUri]
属性将覆盖默认行为,并指示Web API尝试从URI绑定此参数。

控制器方法是如何定义的?将
[FromUri]
属性添加到
字符串[]文件名
参数。[HttpGet][Route(“Test”)]公共异步任务测试(字符串[]文件名)@助教斯佩特:就是这样。谢谢