我需要使用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。
非常感谢。
答案 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或类似的东西,但在我的情况下就足够了。
感谢您的帮助。