Skip to main content
 首页 » 编程设计

c#之Web API 2 的不区分大小写的路由

2024年01月13日31pander-it

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

我看到 MVC 路由有一个强制小写的新选项,但找不到任何用于 Web API 路由的选项。

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

请您参考如下方法:

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

试着改变你的路线:

[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