Web api 2的不区分大小写的路由

时间:2016-10-25 19:46:46

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

在Fiddler中测试以下方法,为 api / test 返回200,但为 api / Test

返回301

我看到MVC路由有一个新选项可以强制执行小写,但找不到任何适用于web api路由的选项。

[HttpGet]
[Route("test")]
public IHttpActionResult Testing()
{
    return Ok();
}

1 个答案:

答案 0 :(得分:-1)

默认情况下,Web API会查找与控制器方法名称的开头不区分大小写的匹配项。

尝试更改此路线:

[RoutePrefix("api/test")]
public class TestController : ApiController

[HttpGet]
[Route("testing")]
public IHttpActionResult Testing()
{
   return Ok();
}

您的WebApiConfig.cs类必须使用默认设置:

 public static void Register(HttpConfiguration config)
    {
        // Web API configuration and services

        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }

有关使用webapi 2.0进行路由的更多信息,请查看此页面:https://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2