Создать URL-ссылку на контроллер из другого контроллера - PullRequest
0 голосов
/ 26 апреля 2018

Я разрабатываю WebApi RESTful в ASP.NET Core 2.0. Из метода действия в контроллере A я хочу создать URL-адрес для метода действия, расположенного в другом контроллере B:

[Route("api/applications/{idbcon}/bcontrollers")]
public class BController : Controller{
    [HttpGet({idbcon}), Name = "ActionB"]
    public IActionResult ActionB(int idbcon, [FromHeader(Name = "Accept")] string mediatype){
        return OK();
    }
}

[Route("api/applications/{idapp}/bcontrollers/{idbcon}/acontrollers")]
public class AController: Controller{
    [HttpGet(), Name = "GetURLBController"]
    public IActionResult GetURLBController()
    {
        var url = /* Here I would like to get the link to "ActionB" that belong to a Controller "BController" */;
        return Ok(url);
    }
}

Любой совет ???

1 Ответ

0 голосов
/ 26 апреля 2018

Используйте перегрузку IUrlHelper.Action, которая принимает параметры action и controller:

public class AController : Controller
{
    [HttpGet]
    public IActionResult GetURLBController()
    {
        var url = Url.Action("ActionB", "BController");
        return Ok(url);
    }
}

IUrlHelper - это то, что вы наследуете от базового класса Controller, представленное как свойство Url.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...