【发布时间】:2016-08-31 19:18:38
【问题描述】:
我有一个从数据库公开数据的 MVC 解决方案。
他们发出一个 HttpGet,我的控制器将数据提供给客户端:
[HttpGet]
[Route("{someGuid:guid}")]
public HttpResponseMessage Get([FromUri] Guid? someGuid)
{
var responseData = _someService.RecordSet.Where(x=>x.guid == someGuid);
return Request.ResponseMessageFromApiEntity(responseData);
}
我将如何实现让客户端能够发出具有多种参数组合的请求的方法? 他们可以传入 2 个或 5 个或最多 10 个,我需要进行过滤这些参数的数据集。
【问题讨论】:
-
我有多个 get 端点。控制器足够聪明,可以确定正在使用哪一个。像这样:www.YourURL/api/controller?var1=value&var1=value public IHttpActionResult Get(string var1, string var2)
-
如果他们决定只通过本田怎么办?
-
试试这篇文章。 tugberkugurlu.com/archive/…。它只是设置一个分隔符来分割参数。我主要使用 web api,所以我只需将一个对象粘贴到 http 请求正文中。
-
你的意思是传递多个向导?只需将其声明为this answer 中的数组即可。或者你的意思是不同的参数名称?只需将它们作为可空参数添加到方法中并使用
Where链接。 -
@stephen.vakil 我需要多个参数,如果客户端传入一个空参数怎么办,我的 Where 将如何工作?我将如何以有条件的方式链接 where's(基于是否提供参数的条件)
标签: c# asp.net .net asp.net-mvc visual-studio