В MVC 5 у меня были следующие методы расширения для генерации абсолютных 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
объекты HttpContext
или HttpRequest
. Я прав? Есть ли способ получить текущий запрос?
Я даже на правильном пути, должен ли домен теперь быть переменной среды, которая просто добавляется к относительному URL? Будет ли это лучший подход?