【发布时间】:2012-05-26 06:38:17
【问题描述】:
我觉得问这个有点荒谬,但我找不到获取获取请求参数的方法
例如/api/foo?sort=name。
在ApiController 类中,我给出了public string Get()。输入Get(string sort) 会使/api/foo 成为一个错误的请求。 ApiController 中的请求实例的类型为 System.Net.Http.HttpRequestMessage。它没有QueryString 或Parameters 属性或任何东西。
【问题讨论】:
-
这是你的 get/id 还是你想要做的?对于没有 id 的获取,返回一个 IQueryable。如果您想完全支持 REST,则需要 GET() 和 GET(id)。
-
对不起,应该指定。我正在尝试创建一个 API 以返回其内容受 get? 参数影响的 json。我并没有直接通过 API 公开数据源
-
如果您需要评估的不仅仅是 id,那么您需要使用 IQueryable 并使用 Odata。
-
如果你有 Get(string sort),那么 api/foo 和 api/foo?sort=name 都应该路由到你的 Get 方法。你是说你得到一个 400 错误?
-
Rick Strahl 对此有一个great blog,其中包含一些我最终使用的扩展...
标签: asp.net-mvc api asp.net-mvc-4 asp.net-web-api