的ASP.NET Web API - 获取与多个参数的要求(ASP.NET Web API - G

2019-09-20 12:06发布

我正在试图做的是有一个像/ API /计算器API请求? 1 = 7.00&2 = 9.99&3 = 5.50&4 = 45.76等如何我的控制器可以抓住该请求数据? 该键/查询字符串的代码是1和1000之间的整数。在查询字符串也可以是一些 1000码的,不一定所有的人都。 值部分是双打。

在一个方式,我认为会的工作是,如果我创建了一个模型对象(例如StupidObject )与1000种性能(应该使用命名像P1,P2,... P1000的代码现在的属性,如整型是不是允许的属性名),饰以ModelBinder 。 那么对于控制器我能有这样的事情GetCalcResult(StupidObject obj){...}但是,这似乎并不像一个优雅的解决方案:)

我试图像控制器GetCalcResult([FromURI]Dictionary<int, double> dict){...}但字典总是空。 也没有[FromURI]我得到一个错误。 还试图List<KeyValuePair<int, double>>作为具有相同的结果的控制器参数。

任何人都可以点我在正确的方向,或给我一个工作的例子吗?

Answer 1:

一种方法是,以避免试图在传递值作为参数,并简单做

  var queryValues = Request.RequestUri.ParseQueryString();

在你的操作方法。 QueryValues将NameValueCollection中,你可以遍历到你的查询参数的访问。

如果你真的想用一个参数,其类型的参数[FromUri] FormDataCollection可能会奏效。



文章来源: ASP.NET Web API - GET request with multiple arguments