gpt4 book ai didi

c# - Web API 2 RoutePrefix 不起作用

转载 作者:太空狗 更新时间:2023-10-29 20:12:45 25 4
gpt4 key购买 nike

在 Controller 级别定义 RoutePrefix 时,当我尝试使用前缀为 http://localhost:55020/api/v2/dummy/get 的 URL 访问 API 类时,它会抛出 404。不过,这个 http://localhost:55020/api/dummy/get 工作得很好。

这是定义了 RoutePrefix 的 Controller 类

    [RoutePrefix("v2/dummy")]
public class DummyController : ApiController
{
// GET api/values
[SwaggerOperation("Get")]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2", "value3" };
}
}

这是WebApiConfig

 public static class WebApiConfig
{
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 }
);
}
}

最佳答案

改用属性路由

public class DummyController : ApiController
{
// GET api/values
[HttpGet]
[Route("api/v2/dummy/get")]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2", "value3" };
}
}

如果你想要路由前缀那么

[RoutePrefix("api/v2/dummy")]
public class DummyController : ApiController
{
// GET api/v2/dummy
[HttpGet]
[Route("get")]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2", "value3" };
}
}

关于c# - Web API 2 RoutePrefix 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40081464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com