参数化路由不接受点作为Web API路由中的参数

时间:2018-08-09 11:51:50

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

我正在使用参数化路由进行Web api调用。它对除点以外的所有特殊字符都适用。 我尝试过的代码

 [HttpGet]
    [Route(@"TestMethod/{strvalue:regex((?s).*)}")]
 public IHttpActionResult TestMethod(string strvalue)
    {
        try
        {
           // logic
        }
        catch (Exception ex)
        {
            return Content(HttpStatusCode.BadRequest, "Error details:" + ex.Message);
        }
    }

当我传递参数值dot(。)时,它不接受请求。得到的响应为

 Request URL
 http://localhost:64515/TestMethod/.

 Response: 
 {
"Message": "The requested resource does not support http method 'GET'."
}

预期结果:即使我通过#,。%$ @#&*之类的任何字符,该请求也应被接受

1 个答案:

答案 0 :(得分:0)

在您的web.config中执行以下代码可以解决您的问题:

<configuration>
    <system.webServer>
        <modules runAllManagedModulesForAllRequests="true" />