如何在名称中使用破折号映射查询参数

How to map query parameters with dashes in their names

有没有办法将查询字符串参数 my-param 映射到 Web API 中的控制器方法参数 myParam 2(最好使用属性路由)?

这意味着 URI 类似于...

library.com/books?search-text=REST

...应该路由到控制器方法

[HttpGet, Route("books/{search-text?}")]
public IEnumerable<Book> Get(string searchText = "") { ... }

这可能吗? Microsoft documentation 没有为这种情况提供示例。但它也没有为路由参数提供某种语法,因此我不确定它是否详尽无遗。

您可以按如下方式使用 [FromUri] 属性:

[FromUri(Name = "search-text")]

您的评论离我们不远。如果您需要这个作为约定,您可以在 Web API:

中创建自己的参数绑定

http://www.asp.net/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api