asp.net webapi映射具有查询字符串的字符串参数

时间:2014-05-30 10:24:13

标签: asp.net asp.net-web-api asp.net-web-api2

我需要使用webapi方法映射字符串参数。容易的事情:

/api/mycontroller/this_is_my_input_param

我知道怎么做,而且工作正常。但问题是我的输入参数可以有一个查询字符串。类似的东西:

/api/mycontroller/term?p=1&n=value

我希望webapi映射整个"术语?p = 1& n = value"使用方法中的输入参数。我只想告诉webapi" ey,只需在/ api / mycontroller /之后获取所有字符串并将其作为输入参数发送到操作"

我知道这可能不是最好的建筑事物,但我需要这样。另外,我不知道我可以拥有多少参数和名字,因此我无法使用复杂类型。我也需要它作为GET。我知道怎么用POST来做,但如果可能的话我需要GET。

非常感谢。

2 个答案:

答案 0 :(得分:0)

您是否可以将该查询字符串添加到正文,然后使用(frombody / fromuri)属性 抓住查询字符串并做任何你想做的事情

Route[api/mycontroller/term] public HttpResponseMessage myController([fromBody] querystring) { //为该查询字符串做一些事情 }

请检查此链接的webapi属性 enter link description here

答案 1 :(得分:0)

最后我正在做的是映射整个HttpRequest,这样我就可以处理完整的请求URL并获得Controller名称之后的所有内容:

public async Task<string> Get(HttpRequestMessage request)

我知道最好创建一个自定义的ModelBinder或类似的东西,但在我的情况下就足够了。

感谢您的帮助。