我需要製作一個支持多個HttpGet
動詞的ASP.NET Core, Web API
,唯一的區別是查詢字符串,但似乎查詢字符串不能成爲路由模板的一部分 - - 真的嗎?ASP.NET Core,Web API RouteAttribute,查詢字符串作爲模板
路由模板非常相似,實際上它們只是根據查詢字符串而不同。
[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);
}
}
由於?
不是路由模板中的有效字符,所以會引發異常。我怎樣才能做到這一點?
您可以使用[FromUri]作爲複雜對象。 –