【发布时间】:2016-08-16 14:57:52
【问题描述】:
我需要创建一个支持多个HttpGet 动词的ASP.NET Core, Web API,唯一的区别是查询字符串,但查询字符串似乎不能成为路由模板的一部分——这是真的吗?
路由模板非常相似,实际上它们只是查询字符串不同。
[Authorize]
public class SymbolsController : Controller
{
[
HttpGet,
Route("api/symbols")
]
public Task<IEnumerable<Symbol>> Symbols([FromServices] ISymbolService symbolService)
{
return symbolService.GetSymbolsAsync();
}
[
HttpGet,
Route("api/symbols?{childrenOf=id}")
]
public Task<IEnumerable<Symbol>> ValidChildren(
[FromQuery] Guid id,
[FromServices] ISymbolService symbolService)
{
return symbolService.GetValidChildrenAsync(id);
}
}
这会引发异常,因为 ? 不是路由模板中的有效字符。我怎样才能做到这一点?
【问题讨论】:
标签: asp.net-web-api routing asp.net-core asp.net-web-api2 asp.net-core-webapi