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, он не работает.
Ресурсов HTTP, соответствующих URI запроса http://localhost:2000/api, не обнаружено.
@mjwills да, но localhost: 2000 / api и localhost: 2000 / api / api, он показывает, что HTTP-ресурс не найден
вы включили маршрутизацию атрибутов? Ваш контроллер также должен быть производным от ApiController.
@Nkosi да, config.MapHttpAttributeRoutes ();
открытый класс Api должен быть унаследован от контроллера или ApiController
@Mate теперь показывает "Не найден маршрут с именем контроллера"
Большой! вам нужно украсить [Route ("")] под [HttpGet]





Необходимо убедиться, что вы следуете предлагаемому синтаксису для контроллеров API.
[RoutePrefix("api")]
public class MyApiController: ApiController {
[HttpGet]
[Route("")] // GET api
public IHttpActionResult Get() {
return Ok("API");
}
}
Что включает в себя ваш контроллер, производный от ApiController.
Если вы используете маршрутизацию атрибутов с префиксом маршрута, вам все равно необходимо указать маршрут для действия.
[Route("")] в данном случае будет действовать как маршрут по умолчанию для этого контроллера.
локальный: 2000 работает? локальный: 2000 / api / api?