是否可以在 FromURI 和 FromBody 上创建参数绑定

本文关键字:创建 参数 绑定 FromBody FromURI 是否 | 更新日期: 2023-09-27 18:32:59

我查找了 ASP.NET Web API参数绑定的文档,它们似乎只有fromURI和fromBody。可以同时做到这两点吗?

以下是一些背景信息。我正在创建一个 webhook 接收器/处理程序,我可以在其中控制哪个 URL 是 webhook,但直到工作流的后期阶段我才能控制有效负载会是什么样子,所以我需要先将其作为 JSON 字符串。

我希望能够设置可以从HTTP POST接收查询字符串和Json字符串有效负载的路由。例如 .../api/incoming?source=A。

是否可以在 FromURI 和 FromBody 上创建参数绑定

如果我理解正确,您正在尝试使用正文中的 Post 数据和 URI 中的一些参数。下面的示例应该从 queryString 中捕获您的"source=a"值。

    [Route("incoming")]
    [HttpPost]
    public IHttpActionResult Test([FromBody] string data, string source)
    {
        //Do something
        return Ok("my return value");
    }

或者,如果您将路由格式化为 .../api/incoming/source/A,则可以如下所示使用。

    [Route("incoming/{source:string}")]
    [HttpPost]
    public IHttpActionResult Test([FromBody] string data, string source)
    {
        //Do something
        return Ok("my return value");
    }