【发布时间】:2022-12-05 16:59:57
【问题描述】:
我试图了解 ASP.NET MVC 中的属性路由。我了解路由如何匹配 url 元素,但不了解查询参数。
例如,假设我有一个可以根据书名或 ISBN 进行匹配的休息式图书查找服务。我希望能够执行类似 GET /book?title=Middlemarch 或 GET /book?isbn=978-3-16-148410-0 的操作来检索图书详细信息。
如何为此指定 [Route] 属性?我可以写:
[HttpGet]
[Route("book/{title}")]
public async Task<IActionResult> LookupTitle(string title)
但据我所知,这也匹配/book/Middlematch和/book/978-3-16-148410-0。如果我还有一个带有 [Route("book/{isbn}")] 的 ISBN 查找端点,那么路由引擎将无法消除这两个端点的歧义。
那么如何通过查询参数名称来区分端点呢?
【问题讨论】:
标签: asp.net-core asp.net-mvc-4