【问题标题】:Sending array of strings to web api using postman使用邮递员将字符串数组发送到 Web api
【发布时间】:2015-12-05 08:06:18
【问题描述】:

这是我的邮递员屏幕的屏幕截图,我在其中尝试向 Web api 调用发出 get 请求。

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

【问题讨论】:

  • 控制器方法是如何定义的?
  • [FromUri] 属性添加到string[] filenames 参数。
  • [HttpGet] [Route("Test")] public async Task Test(string[] filenames)
  • @ta.speot.is:做到了。谢谢。

标签: c# asp.net-web-api postman


【解决方案1】:

鉴于你的行动:

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 绑定此参数。

【讨论】:

    猜你喜欢
    • 2017-03-02
    • 2016-06-30
    • 2021-04-05
    • 2016-10-02
    • 2015-03-21
    • 1970-01-01
    • 2022-12-06
    • 1970-01-01
    • 2020-06-23
    相关资源
    最近更新 更多