加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET MVC – 要从外部控制器或视图确定的内容的绝对URL

发布时间:2020-12-16 07:27:48 所属栏目:asp.Net 来源:网络整理
导读:我有一些内容坐在这样的道路上: /Areas/MyUsefulApplication/Content/_awesome_template_bro/Images/MyImage.png 有没有办法获得一个完全限定的绝对URL到该路径,而不是在控制器或视图中(url助手随时可用). 解决方法 你可以写一个扩展方法: public static c
我有一些内容坐在这样的道路上:

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

有没有办法获得一个完全限定的绝对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意味着什么.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读