我正在尝试使用此UrlHelper扩展方法:
public static string ToPublicUrl(this UrlHelper urlHelper, Uri relativeUri)
{
var httpContext = urlHelper.RequestContext.HttpContext;
var uriBuilder = new UriBuilder
{
Host = httpContext.Request.Url.Host,
Path = "/",
Port = 80,
Scheme = "http",
};
if (httpContext.Request.IsLocal)
{
uriBuilder.Port = httpContext.Request.Url.Port;
}
return new Uri(uriBuilder.Uri, relativeUri).AbsoluteUri;
}
这个方法取一个相对的Uri作为参数。我试图在控制器动作中调用此方法,我无法弄清楚如何获取当前Action的相对Uri
有人能指出我正确的方向吗?
答案 0 :(得分:1)
您可以使用以下命令获取基于特定操作名称的相对路径:
urlHelper.Action("someActionName" /*, "someControllerName" */);
您可以使用以下命令获取当前操作的 someActionName 和 someControllerName 值:
ViewContext.Controller.ValueProvider["action"].RawValue
ViewContext.Controller.ValueProvider["controller"].RawValue
答案 1 :(得分:0)
使用MakeRelativeUri方法
Uri result= uriBuilder.Uri.MakeRelativeUri(relativeUri);
return result.ToString()