Есть ли способ получить полный URL-адрес для другого метода контроллера из кода? - PullRequest
0 голосов
/ 31 августа 2018

У меня есть веб-приложение Asp.Net Core. Со следующим контроллером

[Produces("application/json")]
[Route("api/[controller]")]
public class TestController
{
    [HttpGet]
    [Route("firstroute")]
    public async Task<IActionResult> FirstMethod()
    {
        ...Some code...
    }

    [HttpGet]
    [Route("secondroute")]
    public async Task<IActionResult> SecondMethod()
    {
        ...
        SomeMethod(redirectLink)
        ...
    }          
}

Мне нужно получить полностью собранный redirectLink для FirstMethod (вероятно, он будет похож на это: "http://localhost/api/test/firstroute"). Мне нужен не RedirectToAction, а точный URL-адрес в виде строки. Не удалось найти подходящих методов в this.Url или Microsoft.AspNetCore.Http.Extensions.

this.Request.GetDisplayUrl () возвращает результат в соответствующем формате, но только для вызываемого метода.

1 Ответ

0 голосов
/ 31 августа 2018

вы можете использовать данные из HttpContext.Request , как показано ниже

var Url = string.Format("{0}://{1}{2}", HttpContext.Request.Scheme,HttpContext.Request.Host,"/api/firstroute");

и перенаправить на

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