0

我有以下控制器和路线

   [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

但它会得到所有有人可以帮助我吗?

4

1 回答 1

5

这可能是因为您定义的路由约束:alpha要求您的参数仅匹配大写和小写字符。

由于您将传入 a @,这将导致路由无法正确匹配,因此您将收到 404 错误。

只需删除约束,它应该可以按预期工作:

[Route("getByEmail/{email}")]
于 2016-07-01T13:04:38.447 回答