有什么办法可以从代码中获取完整的Url到其他控制器方法吗?

时间:2018-08-31 13:24:36

标签: c# asp.net-core .net-core

我有Asp.Net Core Web应用程序。使用以下控制器

[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)
        ...
    }          
}

我需要得到的是到FirstMethod的完全组装的redirectLink(它可能类似于:“ http://localhost/api/test/firstroute”)。 我不需要RedirectToAction,而是将确切的Url作为字符串。 在this.Url或Microsoft.AspNetCore.Http.Extensions中找不到任何合适的方法。

this.Request.GetDisplayUrl()以适当的格式返回结果,但仅适用于被调用的方法。

1 个答案:

答案 0 :(得分:0)

您可以像下面这样使用来自 HttpContext.Request 的数据

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

并通过

重新发布
return Redirect(Url);