我有以下控制器和路线
[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
但它可以得到所有 有人可以帮助我吗?
答案 0 :(得分:5)
这可能是因为您定义的route constraint :alpha
要求您的参数仅匹配大写和小写字符。
由于您将要传递@
,这将导致路由无法正确匹配,因此您将收到404错误。
只需删除约束即可按预期工作:
[Route("getByEmail/{email}")]