Почему getByEmail возвращает 404 не найден?

У меня есть следующий контроллер и маршрут

   [HttpGet]
        [Route("getByEmail/{email:alpha}")]
        public IHttpActionResult Get(string email)
        {
            var user = _userLogic.GetUserByEmail(email);
            return Ok(user);
        }

Но когда я звоню

localhost/WebApp/api/user/getByEmail/fsd@sd

Возвращение 404 не найдено

I've tried 
localhost/WebApp/api/user/getByEmail/?email=fsd@sd

Но это идет, чтобы получить все Может кто-нибудь, пожалуйста, помогите мне?

1 ответ

Скорее всего, из-за вашего определенного ограничения маршрута :alpha который требует, чтобы ваш параметр соответствовал только заглавным и строчным буквам.

Так как вы собираетесь проходить в @это может привести к неправильному сопоставлению маршрута и, таким образом, вы получите ошибку 404.

Просто удалите ограничение, и оно должно работать как положено:

[Route("getByEmail/{email}")]
Другие вопросы по тегам