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

时间:2016-01-04 13:36:16

标签: c# routes asp.net-web-api2 attributerouting

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

这意味着像...

这样的URI
library.com/books?search-text=REST

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

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

这可能吗? Delphi Language Guide没有提供该案例的示例。但它也没有为路线参数提供某种语法,因此我不确定它是否详尽无遗。

1 个答案:

答案 0 :(得分:5)

您可以使用[FromUri]属性,如下所示:

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

你的评论并不遥远。如果您需要这个约定,您可以在Web API中创建自己的参数绑定:

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