gpt4 book ai didi

ASP.NET MVC - 要从外部 Controller 或 View 确定的内容的绝对 URL

转载 作者:行者123 更新时间:2023-12-04 22:50:27 26 4
gpt4 key购买 nike

我有一些内容位于这样的路径中:

/Areas/MyUsefulApplication/Content/_awesome_template_bro/Images/MyImage.png



有没有办法在不位于 Controller 或 View 中的情况下获得该路径的完全限定绝对 URL(其中 url 助手很容易获得)。

最佳答案

你可以写一个扩展方法:

public static class UrlExtensions
{
public static Uri GetBaseUrl(this UrlHelper url)
{
var uri = new Uri(
url.RequestContext.HttpContext.Request.Url,
url.RequestContext.HttpContext.Request.RawUrl
);
var builder = new UriBuilder(uri)
{
Path = url.RequestContext.HttpContext.Request.ApplicationPath,
Query = null,
Fragment = null
};
return builder.Uri;
}

public static string ContentAbsolute(this UrlHelper url, string contentPath)
{
return new Uri(GetBaseUrl(url), url.Content(contentPath)).AbsoluteUri;
}
}

然后假设您有一个 UrlHelper 实例:
string absoluteUrl = urlHelper.ContentAbsolute("~/Areas/MyUsefulApplication/Content/_awesome_template_bro/Images/MyImage.png");

如果您需要在无法访问 HttpContext 并构建 UrlHelper 的代码的其他部分执行此操作,那么您不应该因为只有可以访问它的代码部分才应该处理 url。代码的其他部分甚至不应该知道 url 的含义。

关于ASP.NET MVC - 要从外部 Controller 或 View 确定的内容的绝对 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7266028/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com