在MVC 5中,我具有以下扩展方法来生成绝对URL,而不是相对的URL:
public static class UrlHelperExtensions
{
public static string AbsoluteAction(
this UrlHelper url,
string actionName,
string controllerName,
object routeValues = null)
{
string scheme = url.RequestContext.HttpContext.Request.Url.Scheme;
return url.Action(actionName, controllerName, routeValues, scheme);
}
public static string AbsoluteContent(
this UrlHelper url,
string contentPath)
{
return new Uri(url.RequestContext.HttpContext.Request.Url, url.Content(contentPath)).ToString();
}
public static string AbsoluteRouteUrl(
this UrlHelper url,
string routeName,
object routeValues = null)
{
string scheme = url.RequestContext.HttpContext.Request.Url.Scheme;
return url.RouteUrl(routeName, routeValues, scheme);
}
}
在ASP.NET Core中相当于什么?
UrlHelper.RequestContext
不再存在。HttpContext
,因为不再有静态的HttpContext.Current
属性。据我所知,您现在还需要传递HttpContext
或HttpRequest
对象。我对吗?有什么方法可以控制当前请求?
我什至在正确的轨道上,现在域也应该是一个环境变量,该变量简单地附加到相对URL后吗?这会是更好的方法吗?