我如何在 asp.net core 3.1 中使用多个 ID 执行路由

How can i perform routing with multiple Ids in asp.net core 3.1

如何使用以下 URL 执行路由

我有以下类型的 URL

  1. api/country它将return所有国家
  2. api/country/1它将return特定国家
  3. api/country/1/state它将return国家1的所有州
  4. api/country/1/state/1 它将 return 特定国家/地区的特定状态
  5. api/country/1/state/1/city 它将 return 州 1 国家/地区的所有城市
  6. api/country/1/state/1/city/1 它将 return 州 1 国家 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
}

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