Web API - 如何通过查询字符串接受逗号分隔的参数值列表

时间:2014-09-13 13:35:50

标签: asp.net-mvc parameters asp.net-web-api asp.net-web-api2

我有一个我在Visual Studio 2013中工作的Web API项目,我希望我的控制器通过查询字符串接受逗号分隔的值列表,类似于:

http://localhost:12345/api/Procedures/1?embed=doctors,drugs&fields=fieldA,fieldB,fieldC

这样做的原因是我希望能够控制是否使用 embed 参数通过自定义嵌入来查询相关资源(附加表),并控制从哪个字段返回使用字段参数的基础对象。

我已经在Google上进行了一些搜索,但大部分内容都与扩展IModelBinder(http://www.strathweb.com/2013/04/asp-net-web-api-parameter-binding-part-1-understanding-binding-from-uri/)或设置自定义ActionFilterAttribute(Convert custom action filter for Web API use?)有关,这对于相对简单的事情来说似乎有点过头了。

仅供参考我使用实体框架dbContext类连接到我的数据库。

1 个答案:

答案 0 :(得分:3)

逗号字符在HTTP查询字符串中没有任何特定含义,因此不会通过开箱即用的模型绑定机制将其视为分隔符。

据我所知,您提到的自定义属性的方法是最简单的。考虑到你只会实现一次属性并在任何地方使用,它看起来并不过分。