ASP. NET Атрибут маршрутизации WebApi получает имя контроллера - PullRequest
0 голосов
/ 23 апреля 2020

Я использую ASP. NET WebApi. И начал использовать атрибут маршрута, но проблема в том, что при использовании маршрутизации атрибута я не могу получить контроллер и имя действия в классе контроллера. Вот как я использую:

[Route("GetInfo")]
public async Task<IHttpActionResult> GetInfoAction(){

  var controllerName = this.ControllerContext.RouteData.Values["controller"].ToString();
  return Ok(controllerName );

}

И это не работает, не получая имя контроллера, но при комментировании атрибута маршрута [Route ("GetInfo")], получая controllerName.

Может быть, кто-то знает, почему это происходит и как получить имя контроллера при использовании атрибута маршрутизации?

Исправлено, например:

var controllerName = ActionContext.ControllerContext.ControllerDescriptor.ControllerName;

Но странно, почему у Routedata нет этой информации. Это может вызвать проблемы в будущем.

...