C# owin web api 路由索引页面
Posted
技术标签:
【中文标题】C# owin web api 路由索引页面【英文标题】:C# owin web api route index page 【发布时间】:2018-12-28 07:02:11 【问题描述】:http://localhost:2000/api/Controller
我需要创建索引页面。
URI:http://localhost:2000/api
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "api",
routeTemplate: "api"
);
还有 api
[RoutePrefix("api")]
public class Api
[HttpGet]
public HttpResponseMessage Get()
var result = new HttpResponseMessage(HttpStatusCode.OK);
result.Content = new ByteArrayContent(Encoding.ASCII.GetBytes("API"));
return result;
但是当我打开http://localhost:2000/api
时,它不起作用。
未找到与请求 URI http://localhost:2000/api
匹配的 HTTP 资源。
【问题讨论】:
localhost:2000 有效吗? localhost:2000/api/api? @mjwills 是的,但是 localhost:2000/api 和 localhost:2000/api/api ,它显示没有找到 HTTP 资源 您是否启用了属性路由?您的控制器还需要从ApiController
派生
@Nkosi 是的,config.MapHttpAttributeRoutes();
公共类Api必须继承自Controller或ApiController
【参考方案1】:
需要确保您遵循 API 控制器的建议语法。
[RoutePrefix("api")]
public class MyApiController: ApiController
[HttpGet]
[Route("")] // GET api
public IHttpActionResult Get()
return Ok("API");
这包括让您的控制器派生自 ApiController
。
如果使用带有路由前缀的属性路由,您仍然需要在操作上提供路由。
[Route("")]
在上面这种情况下将充当该控制器的默认路由。
【讨论】:
以上是关于C# owin web api 路由索引页面的主要内容,如果未能解决你的问题,请参考以下文章
使用 Owin 时无法使 ASP.NET Web API 2 帮助页面正常工作
为 ASP.Net Core Web API 项目创建要在启动时转到的索引页面