当参数包含(。)时,WebApi返回404

时间:2014-05-28 21:04:53

标签: c# asp.net-mvc asp.net-web-api

我有一些非常奇怪的行为,可能是它的设计,但它对我没有意义

我有一个简单的终点

 [Route("EmailUsed/{emailaddress}")]
 [HttpGet]
 [AllowAnonymous]
 public IHttpActionResult IsEmailInUse(string emailaddress)
 {
   return Ok(true);
 }

当我尝试调用端点时,每当我尝试添加一个时,我都会获得404。在emailaddress参数中,例如email@gmail.com如果我传递了电子邮件@gmailcom的参数,它可以正常工作。

我是否在这里忽略了一些非常愚蠢的事情?

1 个答案:

答案 0 :(得分:-1)

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

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