asp.net-web-api – ASP.NET Web API – 具有多个参数的GET请求

我想要做的是有一个api请求,比如/api/calculator?1=7.00\u0026amp;2=9.99\u0026amp;3=5.50\u0026amp;4=45.76等.我的控制器如何获取请求数据?查询字符串的键/代码的整数介于1和1000之间.在查询字符串中,它们可以是1000个代码中的一些代码,不一定是所有代码.价值部分是双倍的.

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

我试过像GetCalcResult([FromURI] Dictionary< int,double> dict){…}这样的控制器,但是dict总是为空.也没有[FromURI]我收到错误.还尝试了List< keyvaluePair< int,double>>作为控制器参数具有相同的结果.

有人能指出我正确的方向还是给我一个有效的例子?

解决方法

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

var queryValues = Request.RequestUri.ParseQueryString();

在你的行动方法. QueryValues将是NameValueCollection,您可以迭代它以访问您的查询参数.

如果您确实想使用参数,那么具有[FromUri] FormDataCollection类型的参数可能会起作用.

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....