C# 当参数包含(.)时,WebApi返回404

C# 当参数包含(.)时,WebApi返回404,c#,asp.net-mvc,asp.net-web-api,C#,Asp.net Mvc,Asp.net Web Api,我有一些非常奇怪的行为发生,也许是故意的,但对我来说没有意义 我有一个简单的端点 [Route("EmailUsed/{emailaddress}")] [HttpGet] [AllowAnonymous] public IHttpActionResult IsEmailInUse(string emailaddress) { return Ok(true); } 当我尝试调用端点时,每当我尝试添加一个端点时,就会得到一个404。在emailaddress参数内,例如。ema

我有一些非常奇怪的行为发生,也许是故意的,但对我来说没有意义

我有一个简单的端点

 [Route("EmailUsed/{emailaddress}")]
 [HttpGet]
 [AllowAnonymous]
 public IHttpActionResult IsEmailInUse(string emailaddress)
 {
   return Ok(true);
 }
当我尝试调用端点时,每当我尝试添加一个端点时,就会得到一个404。在emailaddress参数内,例如。email@gmail.com如果我传递email@gmailcom它很好用


我是不是忽略了一些很愚蠢的事情

这通常与IIS级别的输入验证有关。您可以在Web.config中禁用它,您可能需要稍微使用它来找到正确的Web.config值以使其工作。我认为:

<system.web>
    <pages validateRequest="false" />
    <httpRuntime requestValidationMode="2.0" />
</system.web>