【问题标题】:How can i perform routing with multiple Ids in asp.net core 3.1如何在 asp.net core 3.1 中使用多个 Id 执行路由
【发布时间】:2020-07-10 08:00:04
【问题描述】:

如何使用以下 URL 执行路由

我有以下类型的网址

  1. api/country 会返回所有国家
  2. api/country/1 会返回特定国家
  3. api/country/1/state 它将返回国家 1 的所有状态
  4. api/country/1/state/1 它将返回特定国家的特定状态
  5. api/country/1/state/1/city 它将返回所有城市 1 国家 1
  6. api/country/1/state/1/city/1 它将返回特定城市 1 国家 1

【问题讨论】:

  • 这似乎是一个简单而常见的用例。如果你被困在某个地方,你能显示你尝试过的代码吗?如果您正在研究,您是否尝试过检查任何文档?
  • 我已经尝试过这种方式 - [Route("country/{id}/state/{id}/city/{id}")] 但它不起作用。它通过类似错误 - 路由参数名称“id”在路由模板中出现不止一次。我正在寻找路由端点的最佳方式

标签: asp.net asp.net-core url-routing


【解决方案1】:

您的路线参数不必说“id”。您可以选择任何变量名称。例如:

[HttpGet("api/country/{countryId}/state/{stateId}/city/{cityId")]
public IActionResult GetCity(
        [FromRoute]int countryId, [FromRoute]int stateId, [FromRoute]int cityId)
{
    // pick what you want to return here
}

如果您在控制器类上使用[ApiController],则不必在每个属性上都使用[FromRoute]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-29
    • 1970-01-01
    • 2020-11-15
    • 2016-07-21
    • 2020-10-31
    • 2020-05-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多