获取ASP.NET Core中的绝对操作路径

时间:2016-10-23 19:13:20

标签: asp.net-core

我需要获取ASP.NET核心1.0.1中的一些操作的绝对URL:

public IActionResult Test(IUrlHelper urlHelper) {
  var url = urlHelper.Action(nameof(HomeController.Index), Request.Scheme)
  return Ok(url);
}

public IActionResult Test(IUrlHelper urlHelper) {
  var url = urlHelper.RouteUrl(nameof(HomeController.Index), Request.Scheme)
  return Ok(url);
}

这些都没有给我家乡路线的绝对网址。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

首先获取相对url,然后获取绝对url并使用具有两个url的Url类构造函数。 Here是ASP.NET MVC6类似问题的公认答案,请注意MVC6 became ASP.NET Core later on

答案 1 :(得分:0)

我尝试了多种解决方案,但都没有提供所需的输出,我使用的是Core 2.2。

通过Muhammad Rehan Saeed来检查此答案,他在那里创建了一个辅助扩展程序来实现此功能。 (针对Core 1.0 RC及更高版本,于2016年6月回答,并且仍在工作)

Josiah对他的答案进行了修订(2017年11月,在同一问题中),他没有创建新的帮助器,而是扩展了现有的.NET Core MVC类,以便所需的功能似乎是本机解决方案:

Url.AbsoluteAction(...)
Url.AbsoluteContent(...)
Url.AbsoluteRouteUrl(...)

该代码有据可查且易于使用。希望这对那些在解决这一看似简单的任务中迷路的人们有所帮助。