Без параметров - не найдено
Если вы не зарегистрировали (явно или неявно через атрибуты) маршрут /employees
, то ASP. NET не найдет обработчик для этого запроса, который почему по умолчанию он вернется с 404.
С неверными параметрами - неверный запрос
Это немного сложнее. Если у вас есть маршрут с параметрами, вы также можете определить их типы. По умолчанию, если запрос содержит параметр маршрута, который не может быть преобразован в указанный тип c, тогда ASP. NET не будет вызывать ваш обработчик, а не попытается найти для этого лучший маршрут.
Запрос: /employees/123info
[Route("customer/employees")]
public List<Employee> Get( [Required]int someParameter) {
Если вы хотите также поймать неверные запросы, то вам нужно использовать параметры string
и попытаться применить logi преобразования c вручную :
[Route("customer/employees")]
public IActionResult Get(string someParameter) {
bool isItAValidParameter = int.TryParse(someParameter, out var validParameter):
if (!isItAValidParameter)
...