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

本文关键字:大小写 路由 不区 api web | 更新日期: 2023-09-27 18:14:49

在Fiddler中测试下面的方法是返回一个200对于api/test但是一个301对于api/test

我看到MVC路由有一个新的选项来强制小写,但找不到任何web api路由

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

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

默认情况下,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