如何获取当前控制器操作方法的相对Uri
本文关键字:操作方法 控制器 相对 Uri 何获取 获取 | 更新日期: 2023-09-27 18:24:54
我正在尝试使用这个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作为参数。我正试图在控制器操作中调用此方法,但我不知道如何获得当前操作的相对Uri
有人能给我指正确的方向吗?
您可以使用获得基于特定操作名称的相对路径
urlHelper.Action("someActionName" /*, "someControllerName" */);
您可以使用获取当前操作的someActionName和someControllerName值
ViewContext.Controller.ValueProvider["action"].RawValue
ViewContext.Controller.ValueProvider["controller"].RawValue
使用MakeRelativeUri方法
Uri result= uriBuilder.Uri.MakeRelativeUri(relativeUri);
return result.ToString()