ASP.NET Core направляет пустые параметры - PullRequest
0 голосов
/ 12 мая 2019

У меня есть контроллер с одним методом.Маршрутизация охватывает следующие сценарии:

1. userId="1" ,userEmail=null https://localhost:44371/api/customers/1
1. userId="1" ,userEmail="1" https://localhost:44371/api/customers/1/1

Главный вопрос, как отправить запрос при userId=null, userEmail="1".Используйте %20 и запросите что-то вроде https://localhost:44371/api/customers/%20/1?Какой правильный путь?

[HttpGet("{userId}")]
[HttpGet("{userId}/{userEmail}")]
[ApiController]
public class CustomersController : ControllerBase
{
    public JsonResult GetCustomer(string userId, string userEmail)
    {
        return new JsonResult(string.Format("userId: {0}, email: {1} ", userId, userEmail));
    }
}

1 Ответ

1 голос
/ 12 мая 2019

Вы используете неверный способ маршрутизации, поэтому измените код на этот, потому что вам потребуется маршрутизация в методе действия

[ApiController]
[Route("api/[controller]")]
public class CustomersController : ControllerBase
{
    [HttpGet("{userId}/{userEmail}")]
    public JsonResult GetCustomer(string userId, string userEmail)
    {
        return new JsonResult(string.Format("userId: {0}, email: {1} ", userId, userEmail));
    }
}

Таким образом, вы можете запросить API, как это

https://localhost:44371/api/customers/1

Другой пример

[Route("[controller]/[action]")]
public class ProductsController : Controller
{
    [HttpGet] // Matches '/Products/List'
    public IActionResult List() {
        // ...
    }

    [HttpGet("{id}")] // Matches '/Products/Edit/{id}'
    public IActionResult Edit(int id) {
        // ...
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...