【问题标题】:Web API - How to accept comma separated list of parameter values via query stringWeb API - 如何通过查询字符串接受逗号分隔的参数值列表
【发布时间】:2014-11-07 13:06:09
【问题描述】:

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

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

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

我在 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 类连接到我的数据库。

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的评论。我继续并实现了自定义属性选项。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-11
    • 2016-10-01
    • 2017-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多