Vik*_*ram 8 c# asp.net-web-api-routing asp.net-web-api2
在控制器级别定义RoutePrefix时,当我尝试使用带有前缀的URL访问API类时,http://localhost:55020/api/v2/dummy/get它会抛出404. http://localhost:55020/api/dummy/get尽管这样做非常好.
这是控制器类,其中定义了RoutePrefix
[RoutePrefix("v2/dummy")]
public class DummyController : ApiController
{
// GET api/values
[SwaggerOperation("Get")]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2", "value3" };
}
}
Run Code Online (Sandbox Code Playgroud)
这是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 }
);
}
}
Run Code Online (Sandbox Code Playgroud)
请改用属性路由
public class DummyController : ApiController
{
// GET api/values
[HttpGet]
[Route("api/v2/dummy/get")]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2", "value3" };
}
}
Run Code Online (Sandbox Code Playgroud)
如果你想要路由前缀那么
[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" };
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9111 次 |
| 最近记录: |