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

时间:2016-02-02 18:18:02

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

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

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

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

1 个答案:

答案 0 :(得分:2)

如果我理解正确,你试图同时使用来自正文的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");
    }