5

我想要做的是有一个像 /api/calculator 这样的 api 请求?1 =7.00& 2 =9.99& 3 =5.50& 4 =45.76 等我的控制器如何获取请求数据?查询字符串的键/代码是 1 到 1000 之间的整数。在查询字符串中,它们可以是1000 个代码中的一部分,不一定是全部。价值部分是双倍的。

我认为可行的一种方法是,如果我创建一个StupidObject具有 1000 个属性的模型对象(ex)(现在应该使用名为 p1、p2、..p1000 的属性作为代码,因为 int 不是允许的属性名称),用ModelBinder. 然后对于控制器,我可以有类似的东西GetCalcResult(StupidObject obj){...}但这似乎不是一个优雅的解决方案:)

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

谁能指出我正确的方向或给我一个可行的例子?

4

1 回答 1

13

一种方法是避免尝试将值作为参数传递并简单地做

  var queryValues = Request.RequestUri.ParseQueryString();

在你的行动方法中。QueryValues 将是 NameValueCollection,您可以对其进行迭代以访问您的查询参数。

如果您真的想使用参数,则使用 [FromUri]FormDataCollection 类型的参数可能会起作用。

于 2012-07-30T21:08:54.710 回答