在 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 后面?这是个更好的方法吗?